UIContainerView(容器視圖)和自定義容器視圖

1、容器視圖

屏幕快照 2016-11-24 下午10.01.11.png

容器視圖本身就是一個UIView控件,要說它的特別之處只是在于它內嵌了一個普通的控制器,這個控制器的視圖大小和容器視圖的大小保持一致。

2、自定義容器視圖

2.1、自定義容器視圖的步驟:
2.1.1、創(chuàng)建一個控制器對象one
2.1.2、把控制器對象one作為子控制器添加到宿主控制器中
2.1.3、把控制器one的視圖添加到宿主控制器的視圖中
2.2.4、實現(xiàn)didMoveToParentViewController方法【蘋果的解釋:如果有動畫參與的話,必須要寫這行代碼!否則:動畫結束后,控制器的視圖無法接受用戶交互!】
2.2.5、如果不實現(xiàn)2.1.2步驟,會造成圖3中結果。響應者鏈斷裂,當用戶點擊one控制器界面中的按鈕的時候,按鈕無法響應事件。

 CLOneViewController *one = [[CLOneViewController alloc] init];
    //添加到宿主控制器,成為宿主的子控制器
    [self addChildViewController:one];
    // 設置視圖的frame
    one.view.frame = self.view.bounds;
    // 把one的view添加到宿主的視圖中
    [self.view addSubview:one.view];
    // 保證會有動畫效果的情況下,程序能夠正常運行
    [one didMoveToParentViewController:self];
// 在宿主控制器中,如果沒有成為宿主的子控制器,one中的view的子控件無法響應用戶事件,點擊one中的view的按鈕的時候會沒有反應。
圖2.gif
圖3.gif
圖4.png

3、下面是Xcode7是蘋果官方給出的自定義視圖的建議

屏幕快照 2016-11-24 下午11.13.32.png
屏幕快照 2016-11-24 下午11.20.53.png
屏幕快照 2016-11-24 下午11.25.06.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容