gpt4 book ai didi

ios - TableViewCell subview 无法在 IOS 7 中访问

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:28:18 25 4
gpt4 key购买 nike

我在我的应用程序中使用自定义的 TableViewCell。它适用于 IOS 6,但我在 iOS 7 中遇到错误。访问 UITableViewCell

的 subview 时出错

看下面我出错的地方

- (void)addButtonClicked:(UIButton *)button {

Product *product = [productsArray objectAtIndex:button.tag];
NSString *code = product.code;
OTATableCell *cell = (OTATableCell *) [[button superview] superview];

cell.priceLabel; // here i get error

}

显示的错误是:

-[UITableViewCellScrollView priceLabel]: unrecognized selector sent to instance 0x15d0ff80

请帮我解决这个问题。提前致谢。

最佳答案

还需要一个 superView 调用:

 OTATableCell *cell = (OTATableCell *)[[[button superview] superview] superview];

您可以检查如下内容:

对于 iOS >= 7:

       NSLog(@"%@",[[sender superview] class]);   //UITableViewCellContentView
NSLog(@"%@",[[[sender superview] superview] class]); //UITableViewCellScrollView
NSLog(@"%@",[[[[sender superview]superview]superview] class]); //UITableViewCell

对于 iOS < 7:

       NSLog(@"%@",[[sender superview] class]);   //UITableViewCellContentView
NSLog(@"%@",[[[sender superview] superview] class]); //UITableViewCell
NSLog(@"%@",[[[[sender superview]superview]superview] class]); //UITableView

编辑:如果你不想依赖 superView 属性:

UIButton *button = (UIButton *)sender;
CGRect buttonFrame = [button convertRect:button.bounds toView:self.table];
NSIndexPath *indexPath = [self.table indexPathForRowAtPoint:buttonFrame.origin];

//使用indexPath访问单元格:

UITableViewCell *cell=[self.table cellForRowAtIndexPath:indexPath];
cell.label=@"setText";

关于ios - TableViewCell subview 无法在 IOS 7 中访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23285306/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com