我有一个库,它以编程方式构造一个 UIView 来展示我的自定义行为。这个库可以放入视图层次结构中不同位置的许多不同应用程序中。在某些情况下,视图需要“扩展”以填充屏幕空间。我目前正在这样做,让我的代码遍历视图层次结构,直到找到没有父视图的视图,构造一个新视图并将其作为找到的视图的子视图插入,然后在两者之间执行动画转换。退出该新视图只是隐藏它的问题,它会恢复以前的状态。
我有两个问题。
- 有一个更好的方法吗?(特别是,我不太喜欢像那样遍历视图层次结构。)
- 这种方法会发生什么坏事?例如,可能出错的一件事是,之前显示的视图不知道这已经发生,因此可能会出现异常行为。(这可以通过为这种行为发明一个委托协议或使用我目前不知道的现有协议来解决。)
显然,这里的目标是要求包含的应用程序/视图/控制器尽可能少地做,而不是创建一个矩形并构造我的视图的控制器。