我已將子類型UITableViewCell
自定義類。並增加了一些網點。現在我想在我的單元格內的按鈕上獲得IBAction
。我如何定義ViewContoller
本身的IBAction。在單元格中的單擊按鈕上添加新的單元格行
1
A
回答
0
例如,您可以創建您想要的任何水龍頭處理程序。
#define handle_tap(view, delegate, selector) do {\
view.userInteractionEnabled = YES;\
[view addGestureRecognizer: [[UITapGestureRecognizer alloc] initWithTarget:delegate action:selector]];\
} while(0)
在後面的代碼:
SEL sel = @selector(actionOfMine:);
handle_tap(btnbck, self, sel);
作出處理:
-(void) actionOfMine:(UITapGestureRecognizer *)recognizer {
UIView * button = (UIView *) recognizer.view;
int i = (int)button.tag;
//...
}
2
// In cellForRowAtIndexpath
cell.yourButton.tag=indexPath.row;
button.addTarget(self, action: "buttonHandler:", forControlEvents: UIControlEvents.TouchUpInside)
func buttonHandler(sender:UIButton!)
{
if(sender.tag==0){
println("Button at row 0")
}
else if(sender.tag==1){
println("Button at row 1")
}
}
+2
使用這種方法,按鈕不再保持單元格的一部分,但成爲視圖控制器的一部分 –
1
在一個視圖控制器類不能創建一個細胞的網點的不同實例單元格是動態創建的,它們確實需要不同的出口連接。 你可以做的是創建一個自定義單元類的委託,並在cell出現單元格的方法cellForRowAtIndex中將其設置爲視圖控制器實例。 然後,當按鈕的動作被觸發時,您可以調用委託方法並將控件傳遞給視圖控制器實例。
注:請分享你的情況進行進一步的幫助 感謝
2
如果添加處理程序視圖控制器,那麼它將打破了MVC模式。視圖中的事件應該在視圖內處理。但是,您可以爲視圖創建一個委託並從您的按鈕操作處理程序本身調用您想要的方法。
此外,由於在您的XIB中,您將指定outlet類作爲您的UITableViewCell子類。所以,只有這個子類才能處理你的事件。
1
另一種方法是你可以聲明在UITableViewCell類,像塊:
var block_CheckBox: (() ->())!
假設按鈕有一個IBOutlet中操作,如:
@IBAction func didActButton_CheckBoxClicked(_ sender: AnyObject)
{
if block_CheckBox != nil{
block_CheckBox()
}
}
按下按鈕時,我們稱之爲塊。
在Controller
類,你可以定義塊爲:
cell.block_CheckBox = {
()in
//Do required action
}
當你按下按鈕,該塊將只調用。
相關問題
- 1. 單擊tableviewcell上的按鈕單擊單元格不按鈕
- 2. 查找表格單元格中單擊按鈕的行索引
- 3. 如何在表格單元上添加可點擊的按鈕?
- 4. 的UITableView單元格添加按鈕
- 5. 表添加材料UI的單選按鈕行單元格內,
- 6. 在按鈕上更改DataGridView單元格的值單擊
- 7. 向單元格添加按鈕
- 8. 獲取按鈕單擊行中的第n個單元格
- 9. tableview中的單選按鈕單元格
- 10. 將目標添加到tableview單元格內的collectionview單元格的按鈕
- 11. 如何更改表格單元格中的UIImageView圖像,單擊單元格上的按鈕?
- 12. VBA:通過宏將ColC中單元格的單元格添加到另一個單元格中的單元格
- 13. 在點擊添加按鈕時在uitableview底部添加一個新單元格
- 14. 在按下按鈕時在TableView單元格上添加圖片
- 15. 如何在datagridview的單元格單擊事件上向datagridview添加新行?
- 16. 在單擊定製單元格中的按鈕時獲取包裝單元
- 17. UITableView中添加新的單元格按鈕
- 18. 如何增加iPhone中的特定單元格的行高,並將按鈕添加到增加的單元格
- 19. UICollectionViewCell按鈕單擊並更改單元格上的文本
- 20. 更改按鈕上的JQGrid單元格值單擊
- 21. 單擊單元格
- 22. 在單元格的最後一個索引上添加按鈕
- 23. 在表格中添加按鈕查看單元格
- 24. 在表格單元格中添加一個按鈕
- 25. 單擊單元格contentview按鈕後如何訪問單元格信息?
- 26. 在另一個單元格中增加一個單元格的值,每次單擊按鈕或複選框
- 27. 如何從qtablewidget中檢測單元格中單擊的按鈕
- 28. UItableview添加新單元格後,前一個單元格消失
- 29. 在單選按鈕單擊後,取消更改表格單元格的顏色
- 30. 單擊按鈕後訪問數據列表中的單元格?
如果一個普通的C函數可以實現相同的功能,請不要使用宏。 –
添加宏將不必要地使事情複雜化。此外,這種方法將打破MVC模式。 –
請詳細描述你的意思。這個實現工作,易於使用,沒有內存泄漏。我還沒有發現任何這種解決方案的不利之處。此外,這可以真正幫助添加任何水龍頭編程。 – Vyacheslav