什么方法以编程方式将子视图添加到 NIB
Posted
技术标签:
【中文标题】什么方法以编程方式将子视图添加到 NIB【英文标题】:What method to programmatically add subview to NIB 【发布时间】:2016-11-20 01:56:36 【问题描述】:我现在正在将UIButton
添加到drawRect
中的UIView
笔尖。
-(void)drawRect:(CGRect)rect
self.button = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 40, 40)];
[self.button setImage:[UIImage imageNamed:@"buttonImage.png"] forState:UIControlStateNormal];
[self.button setTintColor:[UIColor whiteColor]];
[self addSubview:self.button];
阅读此post 后,它说每当修改视图框架时都会调用drawRect
。我应该添加什么方法来添加我的自定义 UI 元素,或者我应该创建自己的方法并调用它。
【问题讨论】:
覆盖initWithFrame
和 initWithCoder
。调用一个方法在其中添加您的按钮。
【参考方案1】:
我通常是这样的
-(instancetype)initWithCoder:(NSCoder *)aDecoder
self = [super initWithCoder:aDecoder];
if(self)
[self load] ;
return self ;
-(instancetype)initWithFrame:(CGRect)frame
self = [super initWithFrame:frame] ;
if(self)
[self load] ;
return self ;
-(void)load
//add your subviews here .
【讨论】:
以上是关于什么方法以编程方式将子视图添加到 NIB的主要内容,如果未能解决你的问题,请参考以下文章
无论对象是从 nib 加载还是以编程方式创建,执行初始化代码的正确方法是啥?