簡體   English   中英

在具有許多其他視圖的自定義UITableViewCell中為UIButton設置操作

[英]set action for UIButton in customized UITableViewCell which has many other views

我閱讀以下帖子:

如何在UITableViewCell中為UIButton設置操作

將操作添加到自定義UITableViewCell

但是所有解決方案都不適合我。 我不確定我錯過了什么; 我有一個生活在xib文件中的自定義UITableViewCell ,該單元格包含一個UIImageViewUILabel和一個UIButton 我希望當用戶單擊UIButton時,它將從列表中刪除當前項,當用戶選擇該行時,它將導航到另一個頁面。

我所做的:根據上面的問題,我創建了一個UIButton和addTarget,然后使用[cell.contentview addsubview:button]將按鈕添加到單元格中,可以觸發按鈕動作。

還有其他一些視圖,我希望在xib中進行布局,然后不需要使用代碼進行布局。

因此,我在xib中創建了一個按鈕,並為此按鈕(在我的自定義單元格類中的插座)調用setTarget,無法觸發按鈕動作。

然后,我在UIview中添加一個UIview作為占位符,並使用代碼創建一個新按鈕,並將該按鈕添加到占位符UIview ,無法觸發按鈕操作。

因此,看來使其工作的方法必須是:

  1. 用代碼創建一個按鈕;

  2. 添加目標,然后將該按鈕直接添加到單元格的內容視圖中;

似乎很煩人,因為我不想使用代碼來布局視圖。 我想念什么嗎?

首先在添加一個按鈕contentViewUITableViewCellxib文件,並創建在出口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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM