0

我有一个带有五个服装 UITableViewCells 的 UITableView。如果 TableView 滚动所有单元格应该执行相同的方法。

这是代码:

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    if(self.newsViewTable == scrollView) {
        for(int i = 1; i < [self.newsViewTable.subviews count]; i++) {
            [[self.newsViewTable.subviews objectAtIndex:i] hideSocialMediaBar];
        }
    }
}

但如果我 scoll 出现错误!

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIImageView hideSocialMediaBar]: unrecognized selector sent to instance 0x8a9ea90'

我现在不明白为什么错误处理 UIImageView?UITableView 只有一个直接子视图,这就是 Cell!怎么了?为什么它是 UIImageView?

4

1 回答 1

0

self.newsViewTable.subviews返回子视图数组。出现错误是因为当它到达子视图数组中的 UIImageView 时,您正在调用hideSocialMediaBar它的方法,并且它不响应该方法。

如果hideSocialMediaBar是你想对你的细胞做的事情,你需要在一个细胞上调用它。

在您的滚动视图方法中,调用[self.tableview visiblecells]将返回接收器中可见的单元格的 NSArray。

所以改变:

[[self.newsViewTable.subviews objectAtIndex:i] hideSocialMediaBar];

[[self.newsViewTable.visiblecells objectAtIndex:i] hideSocialMediaBar];

于 2013-08-17T17:57:15.950 回答