2017-09-26 73 views
0

我有一個view.xib文件,它有一個小容器(容器視圖),其中包含按鈕/文本字段等所有控件,控件的所有事件都由父級view.xib類文件處理。如何實現類swizzling swift?

我的需求是在一個地方,我需要添加/顯示父母即view.xib完成屏幕。在另一個地方我需要添加容器視圖。當我只添加/顯示容器視圖時,控件的相關事件/方法不起作用。所以我想,如果我可以改變父視圖類的容器視圖類,我的工作就可以完成。

所以要麼建議我一些其他的解決方案或類如果可以用這種方式處理swizzaling。

基本上我加入容器視圖上的UITableView細胞的容器(圖)我的相同代碼如下

if let questionContainerView = cellQuestionView.viewQuestionContainer { 


    // let questionContainerView = cellQuestionView 
      cell.viewQuestionContainer.addSubview(questionContainerView) 
      questionContainerView.translatesAutoresizingMaskIntoConstraints = false 
      cell.viewQuestionContainer.addConstraint(NSLayoutConstraint(item: questionContainerView, attribute: NSLayoutAttribute.left, relatedBy: NSLayoutRelation.equal, toItem: cell.viewQuestionContainer, attribute: NSLayoutAttribute.left, multiplier: 1, constant: 0)) 
      cell.viewQuestionContainer.addConstraint(NSLayoutConstraint(item: questionContainerView, attribute: NSLayoutAttribute.right, relatedBy: NSLayoutRelation.equal, toItem: cell.viewQuestionContainer, attribute: NSLayoutAttribute.right, multiplier: 1, constant: 0)) 
      cell.viewQuestionContainer.addConstraint(NSLayoutConstraint(item: questionContainerView, attribute: NSLayoutAttribute.top, relatedBy: NSLayoutRelation.equal, toItem: cell.viewQuestionContainer, attribute: NSLayoutAttribute.top, multiplier: 1, constant: 0)) 
      cell.viewQuestionContainer.addConstraint(NSLayoutConstraint(item: questionContainerView, attribute: NSLayoutAttribute.bottom, relatedBy: NSLayoutRelation.equal, toItem: cell.viewQuestionContainer, attribute: NSLayoutAttribute.bottom, multiplier: 1, constant: 0)) 
      cellQuestionView.layoutIfNeeded() 
     } 
+0

你可以添加一些代碼來解釋你的問題嗎? –

+0

我編輯了我的問題 –

回答

1

我相信你正在試圖做的是建立一個可重複使用的UIView與控制按鈕,可以在不同的視圖控制器中使用。 Youtube上有一個很棒的教程,標題爲iOS Basically: Reusable UIView - Programming in Swift (Part 1)

基本上,您將希望創建一個.Xib文件專用於您想要重用的視圖,以及由該自定義視圖類處理的所有操作。每次你想要自定義視圖時,你都需要從Xib文件中實例化它,並手動將它作爲子視圖添加到容器視圖中。

祝你好運,快樂的編碼!

- 編輯 -

你更新的代碼表明,這將是一個UITableView的一部分,您要添加上一個UITableViewCell的頂部自定義視圖。您應該實例化一個自定義UITableViewCell並將其註冊爲可重用的表視圖。本教程應指導您如何做到這一點:Custom UITableViewCell Tutorial - TableView with Images and Text in Swift

您可以在自定義表格單元格中定義您的@IBAction,並將您的按鈕選擇器附加到您的自定義單元格的筆尖中的動作。

乾杯!