我希望你能找到我的问题的解决方案,因为我已经没有任何想法了。
我有一个表格视图,它有几个单元格。 某些单元格在其内容视图上具有另一个视图作为子视图。
此附加视图有 2 个子视图:1 个 UIImageView 和 1 个 UILabel。
现在,当我点击UIButton时,UIImageView应该被隐藏/删除,并且UILabel将其文本颜色更改为白色(之前为黑色)。
UILabel会更改其文本颜色,但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];
}
}
一些检查可能会发现对此问题有用:
1)确保你创建一次引用为_adsc_dot_view
的UIImageView
2)进行调试,用断点标记mc_set_selected
,并在日志中检查视图层次结构,您是否具有所需的UIImageView数量而不是更多
po [[UIWindow keyWindow] recursiveDescription]
或检查此高级SO答案:我需要检查iPhone程序上的视图层次结构
3) 如果您使用接口生成器,请确保您具有正确的类型(而不是 UIImage)和正确的引用
您正在使用UITableView,并将UIImageView和UILabel添加为UITableViewCell中的子视图。所以,我认为你应该使用 [self.tableView reloadData] 重新加载 UITabeView;或 [您的表名称重新加载数据];在隐藏并显示UIImageView方法之后。否则,您应该使用 UIImageView 标记或使用 UITableViewCell 索引路径隐藏和显示 UIImageView。
iOS 7 上的目标设备是吗?如果是,请尝试布局单元格的子视图。我遇到了类似的问题,即单元格在ios 7上无法刷新。
Just reload table view cell after Remove/Hide ImageView.