制作主视图的视图子视图是不是一个好习惯,而不是视觉上的视图?

时间:2015-06-23 09:18:41

标签: ios cocoa-touch uiview uikit

在我的视图控制器中说我有一个自定义UIView,它在视图控制器的视图中保存了某个区域。我们称之为viewA。我有一个名为UIView的自定义viewB,它位于viewA的范围内。我曾经认为viewB必须是viewA的子视图,因为它位于其范围内。但是今天我和我的一位同事发生争执,他说viewB不一定应该是viewA的子视图,而是视图控制器视图的子视图。你怎么看?这个问题有一个共同的规则吗?

3 个答案:

答案 0 :(得分:3)

我认为viewB必须是viewA的子视图,因为它位于其范围内。

视图层次结构由UIView的数组属性subViews组织。每个子视图都有自己的帧信息,以相对于父级边界进行布局。重叠是正常的

答案 1 :(得分:2)

在我看来,这取决于viewA和viewB的用法。如果你总是希望将viewB相对于viewA的边界定位,或者如果你总是希望将viewA和viewB一起使用,那么将viewB作为子视图添加可能会更简单。如果你想单独定位和使用这两个观点,或者这两个观点的位置本身并不相关,我会说它们应该是不同的观点。

简而言之,仅仅因为视图重叠并不意味着它们属于一个/一个应该是另一个的超级视图。

答案 2 :(得分:1)

UITableViewCell UITableView的子视图,不是因为它们具有UITableView的边界,而是具有内部连接。

在您的情况下,您需要考虑viewAviewB是否存在某种真实的关系,或者恰好是在一起。也许viewA可以访问和修改viewB很多?或viewBviewA的一个组成部分?您需要将viewB设置为viewA的子视图。