你好,歡迎來到IOS教程網

 Ios教程網 >> IOS訊息 >> 關於IOS >> UITableView獲取cell的row值(解決自定義cell裡的button通過點擊無法獲得cell的indexpath的問題)

UITableView獲取cell的row值(解決自定義cell裡的button通過點擊無法獲得cell的indexpath的問題)

編輯:關於IOS

假如你是用代碼方式直接將控件(如UILabel、UIButton等)加到UITableView的cell中去的話,,,在出了

  [cpp]   - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath   {      //自定義代碼     return cell;     }     這個函數後,,,當你點擊cell的時候想知道到底是點擊了第幾行,,這時候你就可以通過在以下代碼獲得點擊的行數。 [cpp]   UITableViewCell *cell = (UITableViewCell *)[btn superview];   NSIndexPath *indexPath = [_myTableView indexPathForCell:cell];   NSLog(@"indexPath is = %i",indexPath.row);     注釋:btn是你通過代碼的方式添加到cell的一個Button,_myTableView是UITableView的一個關聯變量。   假如你是通過新建 .xib的方式新建一個繼承UITableViewCell的 .xib(例如:shopCell.xib)文件添加到原有UITableView的cell的方式的話,,,用上面這種方法是獲取不到點擊cell所在的行數的,也就是說你不知道點擊的cell到底是第幾行。     同樣可以用上面的代碼,,不過要稍微修改一下:   [cpp]  UITableViewCell *cell = (UITableViewCell *)[[[btn superview] superview] superview];   NSIndexPath *indexPath = [_myTableView indexPathForCell:cell];   NSLog(@"indexPath is = %i",indexPath.row);     解釋:第一句代碼中的[btn superview]是shopCell 的contentView,第二個superview是shopCell自己本身的cell,第三個superview是UITableView的cell,,注意不要弄混淆了。  
  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved