Uiview iOS-设计iOS应用程序时的良好实践?

Uiview iOS-设计iOS应用程序时的良好实践?,uiview,uiviewcontroller,Uiview,Uiviewcontroller,假设您正在开发一个ipad应用程序,您希望在一个页面中显示不同的数据。 在页面底部,您想显示一些与页面其他部分分开的信息吗 问题: 对于页面的该部分,您会使用UIViewController还是UIView的子类 在UIView中有太多逻辑是一种不好的做法吗 我问这个问题是因为我在单元测试代码时遇到了很多问题。UIViewController很容易测试,因为它不需要加载UIView,但是UIView是不可测试的,除非它完全加载(在我的例子中是从nib文件加载的)这是我的两分钱 1) 首先,我

假设您正在开发一个ipad应用程序,您希望在一个页面中显示不同的数据。 在页面底部,您想显示一些与页面其他部分分开的信息吗

问题:

  • 对于页面的该部分,您会使用UIViewController还是UIView的子类
  • 在UIView中有太多逻辑是一种不好的做法吗
我问这个问题是因为我在单元测试代码时遇到了很多问题。UIViewController很容易测试,因为它不需要加载UIView,但是UIView是不可测试的,除非它完全加载(在我的例子中是从nib文件加载的)

这是我的两分钱

1) 首先,我会尝试使用一种仅适用于iPad的花式控制器(特别是分割视图控制器)。或者,我会使用一个自定义UIViewController,为您想要的两个部分提供单独的视图

2) 哦,老兄,这是一个巨大的问题:在一个观点中有太多的逻辑是一种不好的做法吗?您必须始终小心地使用面向对象;将设计拆分为类,并正确使用继承/组合,以避免不可管理的代码。别忘了,苹果通过对MVC的友好帮助你做到这一点

首先,从一个角度来看,错误的逻辑是不好的做法。如果您最终存储了应该属于模型的状态,那么您将埋下一些麻烦的种子。不要这样做。这里的问题不是多少逻辑,而是逻辑的类型。。。请记住,视图是供控制器使用的,并在设计视图时牢记这一点

第二,你的观点可以很复杂,只要它们有特定的目的。苹果的UITableView是一个非常复杂的视图的例子,但使用它相对简单,因为它(在我看来)设计正确。请注意,tableview不存储任何数据。。。它从数据源获取所有信息。此外,它的目的是在单元格中显示数据。如果您模仿这些好的实践,那么复杂的视图仍然可以管理

最后,如果您确实决定创建一个复杂的视图,请使用composition。我可以继续讲下去,但简短的版本是,如果使用面向对象编程并保持代码的条理化,那么许多逻辑更容易管理