[英]set action for UIButton in customized UITableViewCell which has many other views
我閱讀以下帖子:
如何在UITableViewCell中為UIButton設置操作
但是所有解決方案都不適合我。 我不確定我錯過了什么; 我有一個生活在xib文件中的自定義UITableViewCell
,該單元格包含一個UIImageView
, UILabel
和一個UIButton
。 我希望當用戶單擊UIButton時,它將從列表中刪除當前項,當用戶選擇該行時,它將導航到另一個頁面。
我所做的:根據上面的問題,我創建了一個UIButton
和addTarget,然后使用[cell.contentview addsubview:button]
將按鈕添加到單元格中,可以觸發按鈕動作。
還有其他一些視圖,我希望在xib中進行布局,然后不需要使用代碼進行布局。
因此,我在xib中創建了一個按鈕,並為此按鈕(在我的自定義單元格類中的插座)調用setTarget,無法觸發按鈕動作。
然后,我在UIview
中添加一個UIview
作為占位符,並使用代碼創建一個新按鈕,並將該按鈕添加到占位符UIview
,無法觸發按鈕操作。
因此,看來使其工作的方法必須是:
用代碼創建一個按鈕;
添加目標,然后將該按鈕直接添加到單元格的內容視圖中;
似乎很煩人,因為我不想使用代碼來布局視圖。 我想念什么嗎?
首先在添加一個按鈕contentView
的UITableViewCell
在xib
文件,並創建在出口customCell
。 之后,像這樣更改您的cellForRowAtIndex
代碼。
[cell.btn addTarget:self action:@selector(btnTap:) forControlEvents:UIControlEventTouchUpInside];
之后,創建此btnTap
方法
- (void)btnTap:(UIButton*)sender {
CustomCell *cell = (CustomCell*) [[sender superview] superview]; //If you have button inside another view you need to add superView on your hierarchy basis.
NSIndexPath *indexPath = [self.tblFile indexPathForCell:cell];
NSLog(@"Row you want to delete - %d",indexPath.row);
}
希望這會幫助你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.