ios - 如何摆脱表格单元格的选择样式,但仍然接收 setSelected/设置突出显示的单元格

标签 ios cocoa-touch uitableview

我已经尝试过here提供的方法,一切正常,除了我无法使 selectedBackgroundView 透明,它保持白色。在我的自定义 UITableViewCell 类中,我有:

-(void)awakeFromNib {
    UIView *bkgView = [[UIView alloc]initWithFrame:self.frame];
    bkgView.alpha = 0.5;
    bkgView.backgroundColor = [UIColor clearColor];
    self.selectedBackgroundView = bkgView;
}

我还在 setSelected 方法中调用了 [self setNeedsDisplay];

我想要的是删除蓝色突出显示(来自 UITableViewCellSelectionStyleBlue ,我不想将其设置为 UITableViewCellSelectionNone 因为它将禁用 setHighlight/Selected 调用)并且仍然会调用突出显示/选择方法。我已经非常接近了,只是 selectedBackgorundView 仍然是白色的!如果我将其设置为 redColorblueColor,它将显示为红色或蓝色,但是当我设置 clearColor 时,它将显示为白色。我考虑过使用透明 PNG 图像通过 colorWithPatternImage 设置背景,但我想避免这种情况。

我更喜欢尝试弄清楚这一点,因为依赖这两个方法调用会更干净,而且我还想保留公开指示器的使用,该指示器在选择时会变成白色,否则如果我使用,它将保持黑色UITableViewCellSelectionNone

最佳答案

我建议使用 tableView:willSelectRowAtIndexPath: 并返回 nil。 这样,当要选择单元格时,您仍然会收到通知。但是,它实际上不会被选择,从那里您可以自己管理选择,而不必处理控件的默认样式。

关于ios - 如何摆脱表格单元格的选择样式,但仍然接收 setSelected/设置突出显示的单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13334900/

相关文章:

iphone - 如何替换 UITableViewCell 中的 imageView?

cocoa-touch - 如何在 Xcode 4 中将数据模型转换为版本化数据模型?

iphone - 当部分为空时 UITableView 背景颜色变为白色

ios - CLLocationManager didUpdateToLocation :, 在哪个线程上?

ios - 需要帮助让我重新了解重试概念并在RxSwift中共享

cocoa-touch - 输出西类牙语字符

ios - 如何在表格 View 中的特定内容之上设置标题

ios - 在 Swift 中关闭模态呈现的 View Controller 后,如何重新加载 ViewController?

iphone - 从 AVCaptureAudioDataOutputSampleBufferDelegate 播放音频

iphone - 将另一个 View 附加到同一 View "files owner"