【发布时间】:2014-06-13 06:11:20
【问题描述】:
我想知道是什么让 UITableViewCell 的子视图(例如标签)的背景在选择/突出显示时变得透明。对于我的内容视图的某些子视图,我需要避免这种行为。我尝试覆盖 setSelected / setHighlighted 方法并取得了一些成功,但我无法重现这种透明度。有什么想法吗?
【问题讨论】:
标签: select uitableview highlight
我想知道是什么让 UITableViewCell 的子视图(例如标签)的背景在选择/突出显示时变得透明。对于我的内容视图的某些子视图,我需要避免这种行为。我尝试覆盖 setSelected / setHighlighted 方法并取得了一些成功,但我无法重现这种透明度。有什么想法吗?
【问题讨论】:
标签: select uitableview highlight
我认为我使用以下代码得到了一些接近的行为
- (void) setView:(UIView*) view asHighlighted:(BOOL) highlighted {
if([view isKindOfClass:[UILabel class]]){
UILabel* label = (UILabel*) view;
[label setHighlighted:highlighted];
}
else if([view isKindOfClass:[UIImageView class]]){
UIImageView* imageView = (UIImageView*) view;
[imageView setHighlighted:highlighted];
}
if(highlighted){
[view.undoManager registerUndoWithTarget:view
selector:@selector(setBackgroundColor:)
object:view.backgroundColor];
view.backgroundColor = [UIColor clearColor];
}
else {
[view.undoManager undo];
}
for(UIView* subview in view.subviews){
[self setView:subview asHighlighted:highlighted];
}
}
不确定这是使用 UndoManager 的正确方法,但它确实有效。您可以在 setSelected 和 setHighlighted 中使用它来模拟 UITableViewCells 的选择行为
【讨论】: