一、在TableViewCell里获取对应的TableView
有时我们需要在自定义的单元格( tableViewCell )中获取其所在的表格( tableView )对象。除了可以从外部把 tableView 传入到 cell 中去外,还可以通过循环遍历 cell 的 superview 来得到其所在的父 tableView 。
1,扩展UITableViewCell
为方便使用,这里对 UITableViewCell 进行扩展,添加个方法用来获取其所在的 tableView 。
1 2 3 4 5 6 7 8 9 10 11 | |
2,使用样例
我们在每个单元格尾部添加一个按钮,点击后打印出这个按钮所在单元格的 indexPath。(先得到 tableView,再根据 tableView 获取到当前 cell 所在的 indexPath ) (1)效果图
(2)样例代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | |
二、获取任意类型的父View
我们可以对上面的方法做个改进,通过扩展 UIView,让我们可以获得任意视图对象( View)所在的指定类型的父视图。
1,扩展View
这里对 UIView 进行扩展,根据传入的类型,循环遍历获取该类型的父 View。
1 2 3 4 5 6 7 8 9 10 11 | |
2,使用样例
这里对上面样例代码做个修改,之前我们在单元格中这么得到该 cell 所在的 tableView:
1 | |
现在改成这样:
1 | |