[英]Custom UIView subclass add nib subview
我有一个自定义UIView
子类,我们将其CustomViewA
,它是通过initWithFrame:
初始化的,并以编程方式添加一些UIViews(例如UILabel等)。 现在需要将另一个视图添加到CustomViewA
因此我创建了一个nib
,并在其中放置了一些GUI元素(一个是UISegmentedControl
)
现在,我遇到一些有关如何正确地将这个笔尖作为子视图添加到CustomViewA
。 我需要为笔尖创建.h / .m文件吗? 我希望CustomViewA在分段控件更改值时接收操作。
我需要为笔尖创建.h / .m文件吗?
不,你不需要。
当分段控件更改值时如何接收动作?
您可以在xib中为分段控件设置标签号,它在xib视图的所有子视图中应该是唯一的。
您可以使用代码获取分段控件。 UISegmentedControl *segmentedControl = (UISegmentedControl *)[view viewWithTag:1024];
,一旦获得分段控件,就可以使用代码[segmentedControl addTarget:self action:@selector(action:) forControlEvents:UIControlEventValueChanged];
编辑: 如何获取xib的根视图?
使用以下代码:
UIView *rootView = [[[NSBundle mainBundle] loadNibNamed:@"YourXibName" owner:nil options:nil] firstObject];
[[NSBundle mainBundle] loadNibNamed:@"MyNibName" owner:self options:nil];
[self.view addSubview:self.nibView];
在笔尖中,确保将文件所有者的类设置为要添加它的视图控制器。
您也可以从笔尖添加属性和IBActions
就像普通的一样。
我终于知道发生了什么事。 我添加到CustomViewA
的笔尖已添加到CustomViewA
的框架之外。 因此,很明显,当子视图在超级视图的框架之外时,它将不会拦截触摸。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.