我在哪里添加子视图到一个自定义UIView,这样它会在IB中创建和编程时显示,也在IB中渲染



当创建自定义UIView时(就方法而言)我应该添加子视图和其他初始化步骤,以便在:

  • 通过在接口生成器
  • 中添加而创建
  • 通过初始化和编程方式添加创建
  • 通过Xcode 6的新@IBDesignable功能在Interface Builder中查看

我很困惑我应该在哪里添加这个。假设我的视图总是需要有一个特定的图像嵌入它,然后有UIImageView的角圆角。我应该用什么方法来做呢?

编辑-最初误解了问题…

你可以重写你的自定义UIView的香草init方法并在那里处理它。

你也可以声明一个自定义初始化器来调用,以防你需要传入参数,比如UIImageView。

在CustomView.h

-(CustomView *)initWithImage:(UIImage*)image; 
在CustomView.m

-(CustomView *)initWithImage:(UIImage*)image 
{
    if (self = [super init]){
    //do whatever you need with rounded corners, setting images, etc
    }
    return self;  
} 

对于默认图像,你的自定义视图必须在IB中有一个UIImageView子视图,你可以在那里设置图像。要在代码中更改它,它必须是一个IBOutlet)。

至于圆角,很确定你必须在代码中这样做- IB没有这个功能。

还没有玩过w/@IBDesignable。

最新更新