什么方法以编程方式将子视图添加到 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 元素,或者我应该创建自己的方法并调用它。

【问题讨论】:

覆盖 initWithFrameinitWithCoder。调用一个方法在其中添加您的按钮。 【参考方案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 加载还是以编程方式创建,执行初始化代码的正确方法是啥?

使用实例方法以编程方式添加子视图

以编程方式将子视图添加到 UICollectionView

以编程方式使用自动布局将子视图添加到 UICollectionView 不起作用

将子视图添加到更漂亮的视图中?

IOS:如何使从 nib 文件加载的子视图可以使用它的按钮(IBAction)