我已经google了很多天,但没有找到。我只知道如何通过 IB 来做,而不是通过编程方式。我认为[addsubview:view]
只是添加兄弟视图,而不是父子视图。谢谢你的阅读。
7 回答
这很容易:
//allocate a view (or take it from IB or from where you want)
UIView *newView = [[UIView alloc] initWithFrame:CGRectMake(10,10,100,100)];
//add the view on the actual view (or any other view)
[self.view addSubview:newView];
所以这是一个父子案例,而不是兄弟视图。
实际上由[newView superView]
您获得父视图。
您可能对子视图和子视图控制器之间的区别感到困惑,当我们拥有管理和显示许多子视图控制器的容器视图控制器时,会使用这些区别。
查看 Apple 的 UIViewController 文档的“实现容器视图控制器”部分,您将了解它们如何描述子视图控制器的工作方式。
而且,为了具体回答您的问题,以下是涉及子视图控制器的四种方法(来自文档):
以下是您可能需要调用的基本方法:
1)添加ChildViewController:
2) removeFromParentViewController
3) willMoveToParentViewController:
4)didMoveToParentViewController:
而且,当然,如果您真的在谈论子视图,那么在这方面还有很多其他人兴奋地为您的问题提供各种答案。希望你能很快得到你的问题的正确答案。
您可以子类化一个类来实现这一点。
例子:
@interface MSCustomView:UIView
这里 UIView 是父类, MSCustomView 是子类
该[UIView addSubView:]
函数将视图作为子视图添加到您调用它的视图中,即
[view1 addSubView:view2]
将 view2 作为子项添加到 view1。
在苹果文档中:
addsubview
就是这样做的。如果您继续将子视图添加到同一个视图,您基本上会为该子视图创建更多同级
来自 iOS 开发者库:
视图可以嵌入其他视图并创建复杂的视觉层次结构。这在嵌入的视图(称为子视图)和执行嵌入的父视图(称为父视图)之间创建了父子关系。
AddSubview 将视图添加到父层次结构中。IOS 也为广告子视图提供了 insertSubview。这个
提供更好的方法来理解它。
您可以通过 [parentview addSubView:childView] 在 childView 和 parentview 都属于 UIView 类型的语法中添加子视图。