0

我希望你能找到我的问题的解决方案,因为我不再有任何想法了。

我有一个表格视图,它有几个单元格。某些单元格在其 contentView 上有另一个视图作为子视图。

这个附加视图有 2 个子视图:1 个 UIImageView 和 1 个 UILabel。

现在,当我点击 UIButton 时,应该隐藏/删除 UIImageView,并且 UILabel 将它的 textColor 更改为白色(之前为黑色)。

UILabel 更改了它的 textColor 但 UIImageView 仍然可见,即使从它的超级视图中删除 UIImageView 也是如此。

代码看起来像这样。
_adsc_dot_view 是 UIImageView
_adsc_text_label 是 UILabel

- (void)mc_set_selected:(BOOL)selected {
    if (selected) {
        _adsc_dot_view.hidden = YES;
        _adsc_text_label.textColor = [UIColor whiteColor];
    }
    else {
        _adsc_dot_view.hidden = NO;
        _adsc_text_label.textColor = [UIColor blackColor];
    }
}
4

4 回答 4

0

一些检查可能对这个问题有用:

1)确保你创建一次你的UIImageView引用为_adsc_dot_view

2)进行调试,mc_set_selected用断点标记并在日志中检查视图层次结构,是否有所需的UIImageView数量而不是更多

po [[UIWindow keyWindow] recursiveDescription]

或查看此高级 SO 答案:我需要检查 iPhone 程序上的视图层次结构

3)如果你使用 Interface Builder 确保你有正确的类型(而不是UIImage)和正确的参考

于 2013-09-18T15:43:11.033 回答
0

You are using UITableView and you add UIImageView and UILabel as a subview in UITableViewCell. So, I think you should reload UITabeView using [self.tableView reloadData]; or [YourTableName reloadData]; after your hide and show UIImageView method. Otherwise you should hide and show UIImageView using UIImageView tag or using UITableViewCell index path.

于 2013-09-19T06:37:27.040 回答
0

is the target device on iOS 7? If yes then do try to layoutsubviews of the cell. I had a similar issue where the cell wasn't refreshing on ios 7.

于 2013-09-19T06:41:14.230 回答
0

Just reload table view cell after Remove/Hide ImageView.

于 2013-09-19T10:26:25.913 回答