[英]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.