当我连接我的第一个相当复杂的 Cocoa-Touch 视图时,我觉得我无意中滑回了旧的程序模式并且发现很难摆脱它们......尽管我完全了解许多 Cocoa (OO) 设计模式恐怕我会颠覆他们。
因此,这种有问题的观点很快变得难以管理,我想知道我是否可能以错误的方式接近它?!?视图由UIViewController的子类管理。视图本身包含 ±10 个子视图。其中一些子视图“滑入”和滑出并包含与它们一起滑动的自己的子视图(控件、图像视图等)。
没有过多的细节,我发现我在根视图控制器的 touchesBegan/Moved/Ended 方法中执行了大部分(如果不是全部,包括动画)管理代码。管理、设置和检查布尔属性变得一团糟。 if (editingMode & panelAVIsible) .... if (editingMode & panelBVisible) ... 或 *if (viewFlipped) { for (MyCustomView view in someArrayOfSubviews)}等等...授予此应用程序的 UI 需要其中的大部分视图(或其内容)被用户触摸并移动到屏幕的不同部分。
我试图解决的主要问题似乎是这样的:如果 viewA 存在,那么你 3 个视图会隐藏(动画)......或者,如果 viewB 被触摸,那么 viewC 中包含的所有对象都是负数......等等
任何聪明的(或基本的)OO方法来处理这个?也许让包含视图的子视图充当它们自己的迷你视图控制器?不过,我还没有找到太多(任何?)的例子......