在section=10;row=1;的UITableView中,每一個cell都帶有一個按鈕,例如如下的圖片一樣
每一個cell中都有一個“進入店鋪的按鈕”,但是如果我點擊相應的cell要進入對應的店鋪如何處理呢?
如果用”- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath”這個方法的話會的確可以用“indexPath.section”定位到我點擊的是哪一個section,但是會使得整個cell都能點擊。如果不介意的話這個方法當然可以,下面來說一下只通過按鈕來確定是哪一個section的方法。
首先,你的按鈕必須要綁定你的事件,和storyBoard拖個線就行了。
然后一定要在storyBoard仔細觀察你的button上面一共有幾層才能到你的cell,也就是屬一下上面有幾個父類才到cell
如圖所示,方框里的是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的路徑
1
|
path = 2 - 0
|
“2”代表當前cell所在的section,“0”代表當前cell里的row位置。
再通過“indexPathAll.section”就能獲取當前的section了。
個人覺得非常好用,而且很容易理解。