我用谷歌搜索了很多天但没有发现。我只知道IB如何做,但不是通过编程方式。我认为[addsubview:view]
只是添加兄弟视图,而不是父视图。谢谢你的阅读。
答案 0 :(得分:0)
您可能会对子视图和子视图控制器之间的区别感到困惑,这些是我们使用容器视图控制器管理和使用的时候使用的。显示许多子视图控制器。
看看"Implementing a Container View Controller" section of Apple's UIViewController documentation,你会看到它们如何描述子视图控制器的工作方式。
并且,为了具体回答您的问题,以下是涉及子视图控制器的四种方法(来自文档):
以下是您可能需要致电的基本方法:
1)addChildViewController:
2)removeFromParentViewController
3)willMoveToParentViewController:
4)didMoveToParentViewController:
当然,如果你真的在谈论子视图,那么还有很多其他人兴奋地在这方面提供各种问题的答案。希望你能快速找到问题的正确答案。
答案 1 :(得分:0)
您可以对类进行子类化以实现此目的。
示例:
@interface MSCustomView:UIView
这里UIView是父类,MSCustomView是子类
答案 2 :(得分:0)
[UIView addSubView:]
函数将视图作为子视图添加到您调用它的视图,即
[view1 addSubView:view2]
会将view2作为子视图添加到view1。
在Apple文档中:
答案 3 :(得分:0)
addsubview
就是这么做的。如果您继续将子视图添加到同一个视图中,您基本上会为该子视图创建更多兄弟视图
来自iOS开发者库:
视图可以嵌入其他视图并创建复杂的视觉效果 层次结构。这将在视图之间创建父子关系 嵌入(称为子视图)和父视图 嵌入(称为superview)。
答案 4 :(得分:0)
AddSubview将视图添加到父层次结构中。 IOS也为广告子视图提供insertSubview。这个
提供更好的方法来理解它。
答案 5 :(得分:0)
你可以通过[parentview addSubView:childView]在语法中添加子视图,childView和parentview都是UIView类型。
答案 6 :(得分:0)
很容易:
//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]
,您可以获得父视图。