我对我想要构建的应用程序有了一个想法,并且是iPhone / iPad开发的新手(但对于其他语言/框架(如.NET和Java)的开发并不陌生)。我想在屏幕上布置一些视图,以便它们从不同的方向动画(滑入)到他们的位置。
问题是关于应用程序的结构,如果我在屏幕上说4个包含业务数据的矩形区域,例如联系人(姓名,照片等等),它们都占用了不同的宽度。屏幕(假设第一个接触占据屏幕的一行,但接下来的2个占据下一行的宽度的一半,依此类推)。
我应该为不同大小的联系人视图创建自定义视图(例如,LargeCustomView和SmallCustomView,以及我制作的任何其他特殊类型),还是应该都是一种类型,比如,CustomerDetailsView可以拉伸以适应设计时间?
另外,如果在一个屏幕上有相同自定义视图的3个不同实例,那么视图控制器还有3个实例吗?我对一个视图背后的数据提供了一点点困惑,有人可以为我阐明这一点吗?我是否只在视图控制器上为每个实例设置属性(比如一个实例变量ContactForView)?
感谢您提供任何帮助
干杯,
标记
答案 0 :(得分:1)
我应该为不同大小的联系人视图创建自定义视图(例如,LargeCustomView和SmallCustomView,以及我制作的任何其他特殊类型),还是应该都是一种类型,比如,CustomerDetailsView可以拉伸以适应设计时间?
我想只有你能回答这个问题。如果UIView自动调整掩码足以容纳两种布局,那么你应该只选择一个类。如果这还不够,您可以覆盖layoutSubviews以考虑不同的大小,或者可以使用公共超类来包含逻辑和两个子类来执行不同的布局。
另外,如果在一个屏幕上有相同自定义视图的3个不同实例,那么视图控制器还有3个实例吗?
由于UIViewControllers的工作方式,Apple通常建议每个屏幕不要有多个视图控制器。来自文档:
您不应该使用视图控制器来管理仅填充其窗口一部分的视图 - 即,只是应用程序内容矩形定义的区域的一部分。如果您想要一个由几个较小视图组成的界面,请将它们全部嵌入到一个根视图中,并使用您的视图控制器管理该视图。
否则,设备轮换之类的事情可能会变得棘手,因为不是全屏的视图控制器应该对这些事件做出不同的反应,并且不会编写Apple的UIViewController。但是,没有人会阻止您编写自己的视图控制器(派生自NSObject
,而不是UIViewController
),这就是我的建议:如果视图非常复杂,请为它编写自定义控制器类但每个屏幕坚持一个UIViewController。