我有一个UIView
名为的自定义类,它与通过情节提要配置的MyView
一起使用。UIViewController
大多数视图属性是通过 Interface Builder 配置的;但是,在将它们设置为按钮的背景之前,我需要以编程方式调整几个图像,如下所示:
-(void)setupVisuals {
UIImage *image = [[UIImage imageNamed:@"myButton.png"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 10, 0, 10)];
// _myButton is an IBOutlet property set through the storyboard:
[_myButton setBackgroundImage:image forState:UIControlStateNormal];
}
问题是我不能[self setupVisuals]
从初始化程序*调用,因为当时是_myButton
。nil
MyViewController
我通过将此行添加到viewDidLoad:
[(MyView*)self.view setupVisuals];
有了这个电话,一切正常。然而,这感觉像是一种变通方法,而不是一个可能是相对常见问题的解决方案。
是否有UIView
覆盖方法或任何其他机制来完成MyView
视觉效果的初始化而不利用该viewDidLoad:
机制?
*在这种情况下,初始化器是
initWithCoder:
因为视图是从情节提要中加载的。我验证了初始化程序被正确调用,但视觉效果还没有准备好。