如何在iOS中以编程方式添加子视图?

时间:2013-05-30 10:58:30

标签: ios uiview parent-child

我用谷歌搜索了很多天但没有发现。我只知道IB如何做,但不是通过编程方式。我认为[addsubview:view]只是添加兄弟视图,而不是父视图。谢谢你的阅读。

7 个答案:

答案 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文档中:

http://developer.apple.com/library/ios/documentation/UIKit/Reference/UIView_Class/UIView/UIView.html#//apple_ref/occ/instm/UIView/addSubview

答案 3 :(得分:0)

addsubview就是这么做的。如果您继续将子视图添加到同一个视图中,您基本上会为该子视图创建更多兄弟视图

来自iOS开发者库:

  

视图可以嵌入其他视图并创建复杂的视觉效果   层次结构。这将在视图之间创建父子关系   嵌入(称为子视图)和父视图   嵌入(称为superview)。

https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UIView_Class/UIView/UIView.html

答案 4 :(得分:0)

AddSubview将视图添加到父层次结构中。 IOS也为广告子视图提供insertSubview。这个

http://developer.apple.com/library/ios/#Documentation/WindowsViews/Conceptual/ViewPG_iPhoneOS/CreatingViews/CreatingViews.html

提供更好的方法来理解它。

答案 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],您可以获得父视图。