我正在尝试访问包含我的UIView
的实例变量。
更准确地说,我有一个自定义的UITableViewCell
。里面有一个UIView
,我想通过UIView
进入这个细胞。基本上,我把这个UIView
作为另一个函数的参数传递给了其他地方。
是否有可能通过此UIView
访问我的单元格,或者我必须找到另一种方式?
谢谢你的帮助。
UIView
将是该UITableViewCell
的子视图。UIView
有一个属性superview
,也许UITableViewCell
基于你建立的任何视图层次结构。你也可以得到父视图的视图。
UITableViewCell* parentCell = (UITableViewCell*)myView.superview;
或
= (UITableViewCell*)myView.superview.superview;
我不知道为什么这样做,我认为,这是有点丑。但你可以试试这个类别:
@interface UITableView (MyCoolExtension)
- (NSIndexPath *)indexPathForCellContainingView:(UIView *)view;
@end
@implementation UITableView (MyCoolExtension)
- (NSIndexPath *)indexPathForCellContainingView:(UIView *)view {
while (view != nil) {
if ([view isKindOfClass:[UITableViewCell class]]) {
return [self indexPathForCell:(UITableViewCell *)view];
} else {
view = [view superview];
}
}
return nil;
}
@end