ios - 我在哪里将 subview 添加到自定义 UIView 以便它在 IB 中以编程方式创建并在 IB 中呈现时显示?

标签 ios uiview interface-builder ios8 xcode6

当创建自定义 UIView 时(就方法而言)我应该添加 subview 和其他初始化步骤,以便它在以下情况下显示:

  • 通过在 Interface Builder 中添加来创建
  • 通过初始化创建并以编程方式添加
  • 通过 Xcode 6 中新的 @IBDesignable 功能在 Interface Builder 中查看

我很困惑我应该在哪里添加这个。假设我的 View 总是需要在其中嵌入一个特定的图像,然后将 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;  
} 

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

至于圆角,很确定您必须在代码中做到这一点——IB 没有这种能力。

还没有玩过@IBDesignable。

关于ios - 我在哪里将 subview 添加到自定义 UIView 以便它在 IB 中以编程方式创建并在 IB 中呈现时显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25147718/

相关文章:

ios - 按周显示 NSDates

objective-c - ObjC : Moving the displayed area of a UIView

objective-c - 在一层上绘制多个 UIView

iphone - 强制 UITabView 到 'dock' 或锁定到屏幕底部?

objective-c - 如何将文本字段绑定(bind)到包含一行的一个核心数据实体的属性?

ios - 当 MKMapView 显示 UserLocation == YES 时隐藏 MKUserLocation

ios - 核心数据 : No existing entry for row 0 but for row 1, 2,3

ios - 如何诊断异常类型 : EXC_BAD_ACCESS (SIGSEGV) Exception Subtype: KERN_INVALID_ADDRESS?

iphone - 使用旋转手势围绕中心点旋转多个 UIView

ios - 如何使用 AutoLayout 将 UIButtons 定位在水平线上(环绕,左对齐)?