iOS UITableView中關於cell里的按鈕被點擊時如何確定是哪一個section


在section=10;row=1;的UITableView中,每一個cell都帶有一個按鈕,例如如下的圖片一樣
iOS Simulator Screen Shot 2014年11月6日 下午8.35.36
每一個cell中都有一個“進入店鋪的按鈕”,但是如果我點擊相應的cell要進入對應的店鋪如何處理呢?
如果用”- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath”這個方法的話會的確可以用“indexPath.section”定位到我點擊的是哪一個section,但是會使得整個cell都能點擊。如果不介意的話這個方法當然可以,下面來說一下只通過按鈕來確定是哪一個section的方法。
首先,你的按鈕必須要綁定你的事件,和storyBoard拖個線就行了。
然后一定要在storyBoard仔細觀察你的button上面一共有幾層才能到你的cell,也就是屬一下上面有幾個父類才到cell
屏幕快照 2014-11-06 下午8.46.52
如圖所示,方框里的是button,上面到cell一共有三層。為什么要看有幾層,我們來看一下按鈕的代碼

1
2
3
4
5
6
7
- (IBAction)enterShopButton:(UIButton *)sender {
     UIView *v = [sender superview]; //獲取父類view
     UIView *v1 = [v superview];
     UITableViewCell *cell = (UITableViewCell *)[v1 superview]; //獲取cell
     NSIndexPath *indexPathAll = [self.tableView indexPathForCell:cell]; //獲取cell對應的section
     NSLog(@ "indexPath:--------%@" ,indexPathAll);
}

首先第一個“v”是獲取“View”這一層,然后繼續調用superview往上翻(不懂的對照上面的圖來看)
“v1”是獲取“Content View”這一層,
“cell”就獲取到了對應的cell這一層。然后取出cell的路徑
屏幕快照 2014-11-06 下午8.58.53

1
path = 2 - 0

“2”代表當前cell所在的section,“0”代表當前cell里的row位置。
再通過“indexPathAll.section”就能獲取當前的section了。
個人覺得非常好用,而且很容易理解。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM