我已经搜索了很多东西,并通过几本教科书进行了挖掘,但我真正欣赏的是在iOS应用程序中定义UIView子类的最佳实践的简单解释。
我不需要超级具体说明 - 我更希望找到一份快速参考指南,解释在每种可用方法中适用的代码类型。
答案 0 :(得分:6)
我的做法是:
在我的自定义UIView子类I中:
if ( !CGRectEqualToRect(__subview.frame, rect) ) { __subview.frame = rect; }
这就是我在所有UIViewControllers中所做的。我不使用IB,一切都是以编程方式创建的。
希望它有所帮助!
答案 1 :(得分:4)
如果使用xib,我可以在哪里添加/调整控件的开头 运行
在视图控制器的viewDidLoad
中。
如果以编程方式构建,我应该在ViewController中执行此操作 (loadView?)或单独的UIView子类?如果是后者,我该怎么做 指定它的文件的owener,以便它被添加为子视图 知道它的控制器是谁?
同样,我总是在我的视图控制器的viewDidLoad
中执行此操作。
你在awakeFromNib,loadView,viewDidLoad,UIView.init中放置了什么, UIViewController.init等?
其中,我只担心viewDidLoad
。
您经常使用哪些其他方法?
确保为手动创建的控件使用自动调整大小遮罩,以确保它们正确处理用户界面方向。
永远不要假设(尽可能多)您的屏幕宽度为320pt。请务必参考您需要当前视图大小的self.view.size
。
如果您的控件无法通过自动调整大小的蒙版来处理用户界面方向更改,请务必使用iOS 5的viewWillLayoutSubviews
进行调整。
答案 2 :(得分:0)
有一些非常简单的nib,如典型的MainWindow.nib,它们没有本地化内容,可以用一行代码重现。在这种情况下,代码比取消归档nib要快得多。
还有高度动态的布局,无法将其描述为笔尖。
您应该在每种特定情况下选择最方便有效的方式。总会有权衡,只需明智地选择。