zoukankan      html  css  js  c++  java
  • 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了。
    个人觉得非常好用,而且很容易理解。

  • 相关阅读:
    J
    I
    uva122 二叉树的实现和层次遍历(bfs)
    A
    HDU 波峰
    2239: 童年的圣诞树
    1734: 堆(DFS)
    1731: 矩阵(前缀和)
    1733: 旋转图像(模拟)
    1728: 社交网络(概率问题 组合数/排列数)
  • 原文地址:https://www.cnblogs.com/sunfuyou/p/6433739.html
Copyright © 2011-2022 走看看