在哪里可以将子视图添加到自定义UIView中,以便在IB中以编程方式创建时显示,也可以在IB中显示?

时间:2014-08-05 20:26:54

标签: ios uiview interface-builder ios8 xcode6

创建自定义UIView时,我应该添加子视图和其他初始化步骤,以便在以下情况下显示:

  • 从在Interface Builder
  • 中添加创建
  • 从init&d;创建并以编程方式添加
  • 通过Xcode 6中新的@IBDesignable功能在Interface Builder中查看

我非常困惑我应该添加这个。假设我的视图总是需要在其中嵌入特定图像,然后将UIImageView的角倒圆。我应该采用什么方法?

1 个答案:

答案 0 :(得分:1)

编辑 - 最初误解了这个问题......

您可以覆盖自定义UIView的vanilla 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没有这种能力。

尚未玩过@ IBDesignable。