ios - UIView - 自定义 View - View 的 subview 在哪里初始化?

标签 ios objective-c cocoa-touch uiview

我正在创建一个带有一些 subview 的自定义 UIView。
在 IB 中 - 我将我的 subview 设置为 CreateAlbumView,它是一个 UIView,并创建了一些 subview 并输出它们。

当我在代码中扩展此 View 并将其添加到 super View 时,将调用以下代码:

-(id)initWithCoder:(NSCoder *)aDecoder {
    self = [super initWithCoder:aDecoder];
    if (self)
        [self setViews];
    return self;
}

但是那里的 subview 都为零-使我的 setViews() 函数变得无用。

我已更改代码以在以下函数中设置代码,但似乎不正确:
-(void)layoutSubviews {
    [super layoutSubviews];
    [self setViews];
}

subview 在哪里实际初始化,我可以从哪里开始使用它们?

最佳答案

你应该使用

- (void)awakeFromNib

nib 加载基础架构向从 nib 存档重新创建的每个对象发送 awakeFromNib 消息,但前提是存档中的所有对象都已加载和初始化。当对象收到 awakeFromNib 消息时,保证已经建立了所有导出和操作连接 .

关于ios - UIView - 自定义 View - View 的 subview 在哪里初始化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25838066/

相关文章:

ios - 如何为 UITextField 中的占位符文本设置可访问性特征?

ios - 为每个 Collection View 单元格创建一个数组

ios - 仅允许一个 Controller 旋转

objective-c - 如何在 Mac OS X 上将 CALayer 添加到 NSView

ios - CLBeacon - 从 PeripheralData NSDictionary 存储和提取信息?

iphone - 如何将文件从 S3 下载到 iPhone 应用程序?

cocoa-touch - 更改UIWindow的rootViewController动画

ios - 方向动画不显示方向何时改变 ios Swift

ios - 您什么时候希望 UINavigationBar 具有多个 UINavigationItems?

ios - 呈现 modalViewController 正在释放调用它的那个