iOS AutoLayout: 关联 Xib 和 UIView
来源:互联网 发布:淘宝旗舰店和工厂店铺 编辑:程序博客网 时间:2024/06/05 15:36
博客 iOS AutoLayout: 关联 Xib 和 UIViewController 介绍了 UIViewController 如何关联 xib 文件, 并且如何给组件连线以及一些需要注意的事项.
今天继续 Autolayout 的话题.
1.新建一个 Single View 的 iOS 项目
2.新建一个 Empty 的 Userinterface View, 取名为 View.xib
3.新建一个继承自 UIView 的子类, 取名为 CustomView.
4.打开 View.xib, 选择 File Owner 为 CustomView.
如下图所示
在 ViewController 的 viewDidload 加入下面代码:
CustomView *cv = [[CustomView alloc] init]; UIView *view = [[[NSBundle mainBundle] loadNibNamed:@"View" owner:cv options:nil] firstObject]; view.frame = self.view.bounds; [self.view addSubview:view];
编译运行, 即可看到效果.
CustomView 实现
#import "CustomView.h"@interface CustomView ()@property (nonatomic, strong) UIView *nibView;@end@implementation CustomView- (instancetype)initWithFrame:(CGRect)frame{ self = [super initWithFrame:frame]; if (self) { _nibView = [[[NSBundle mainBundle] loadNibNamed:@"View" owner:self options:nil] firstObject]; _nibView.frame = frame; [self addSubview:_nibView]; } NSLog(@"CustomView: initWithFrame..."); return self;}- (instancetype)initWithCoder:(NSCoder *)coder{ self = [super initWithCoder:coder]; if (self) { } NSLog(@"CustomView: initWithCoder..."); return self;}- (void)awakeFromNib{ [super awakeFromNib]; NSLog(@"CustomView: awakeFromNib...");}//重写该方法- (void)layoutSubviews{ [super layoutSubviews]; self.nibView.frame = self.frame;}//重写该方法- (void)setFrame:(CGRect)frame{ _nibView.frame = frame; [super setFrame:frame];}
修改 ViewController 中 viewDidload 方法:
#if 0 //方式 1 CustomView *cv = [[CustomView alloc] init]; UIView *view = [[[NSBundle mainBundle] loadNibNamed:@"View" owner:cv options:nil] firstObject]; view.frame = self.view.bounds; [self.view addSubview:view];#endif // 方式2 //CustomView *customView = [[CustomView alloc] initWithFrame:self.view.bounds]; // 方式3 CustomView *customView = [[CustomView alloc] init]; customView.frame = self.view.bounds; [self.view addSubview:customView]
无论在 ViewController 中使用哪种方式来加载视图, 都是调用视图的 initWithFrame 方法.不是 initWithCoder.
下篇博客继续 UIView 和 Xib 的话题, 我会使用另一种加载和设计方式.
收工!
1 0
- iOS AutoLayout: 关联 Xib 和 UIView
- iOS AutoLayout: UIView 关联 Xib 不设置 File's Owner
- iOS AutoLayout: 关联 Xib 和 UIViewController
- 【iOS】iOS之UIView关联xib文件
- Xcode5 创建模板和UIView 关联XIB
- Xcode5 创建模板和UIView 关联XIB
- uiview关联xib
- 自定义UIview关联xib
- UIView 关联xib
- uiview关联xib
- iOS里面xib和AutoLayout的妙用
- iOS开发,如何让xib关联一个UIView?
- iOS开发,如何让xib关联一个UIView?
- iOS开发,如何让xib关联一个UIView?
- UIView的xib关联问题
- iOS 如何关联xib和控制器
- iOS xib和代码关联使用
- 继承自UIView的控件如何使用xib以及xib关联属性和方法
- android心得
- POJ1006 Biorhythms【中国剩余定理】
- 浅谈ReactiveCocoa
- 【web前端】记webApp开发记录
- 可视化理解卷积神经网络-ECCV 2014
- iOS AutoLayout: 关联 Xib 和 UIView
- python3学习记录——安装pyspider中lxml安装问题
- Hibernate 主键生成策略
- android拍摄照片和从相册里选择照片
- 如何在linux系统中设置静态ip地址
- python遇到SyntaxError: Non-ASCII character '\xc3' in file pic2char.py on line 4, but coding declared;
- 树的基本概念
- 匿名内部类访问外部类中的局部变量必须是final属性
- IEEE 802.15.4协议完整中文版 - 4.1 通用描述