das*_*ght 5 objective-c uiview ios uistoryboard
我有一个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];
}
Run Code Online (Sandbox Code Playgroud)
问题是,我不能把[self setupVisuals]
从初始化*,因为_myButton
是nil
在那个时候.
我加入这行解决了这个问题MyViewController
的viewDidLoad:
[(MyView*)self.view setupVisuals];
Run Code Online (Sandbox Code Playgroud)
有了这个电话,一切正常.然而,这感觉就像一个解决方案,而不是解决可能是一个相对常见的问题.
是否有一种UIView
方法可以覆盖,或任何其他机制来完成MyView
视觉的初始化而不进入viewDidLoad:
机制?
initWithCoder:
因为视图是从故事板加载的.我验证了初始化程序被正确调用,但视觉效果还没有准备好.
听起来你使用得viewDidLoad:
正确。根据苹果的文档:
您通常会重写此方法以对从 nib 文件加载的视图执行额外的初始化。
如果您的目标是在级别上封装此功能UIView
,请尝试layoutSubviews
.
归档时间: |
|
查看次数: |
1049 次 |
最近记录: |