我希望你能找到解决我问题的方法,因为我不再有任何想法了。
我有一个tableview,它有几个单元格。一些单元格在其contentView上有另一个视图作为子视图。
此附加视图有2个子视图:1个UIImageView和1个UILabel。
现在,当我点击一个UIButton时,应该隐藏/删除UIImageView,并且UILabel将它的textColor更改为白色(之前为黑色)。
UILabel更改了它的textColor,但即使从UIImageView的超级视图中删除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];
}
}
答案 0 :(得分:0)
您可能会发现对此问题有用的一些检查:
1)确保创建一个引用为_adsc_dot_view
的 UIImageView
2)执行调试,使用断点标记mc_set_selected
并在日志中检查视图层次结构,是否具有所需数量的 UIImageView 而不是更多
po [[UIWindow keyWindow] recursiveDescription]
或查看此高级SO答案:I need to inspect the view hierarchy on an iPhone program
3)如果您使用Interface Builder,请确保您具有正确的类型(而不是 UIImage )和正确的参考
答案 1 :(得分:0)
您正在使用UITableView,并在UITableViewCell中添加UIImageView和UILabel作为子视图。所以,我认为你应该使用[self.tableView reloadData]重新加载UITabeView;或[YourTableName reloadData];隐藏并显示UIImageView方法之后。否则,您应该使用UIImageView标记或使用UITableViewCell索引路径隐藏和显示UIImageView。
答案 2 :(得分:0)
是iOS 7上的目标设备吗?如果是,那么尝试布局单元格的子视图。我有一个类似的问题,在ios 7上细胞没有刷新。
答案 3 :(得分:0)
Just reload table view cell after Remove/Hide ImageView.