为啥不能设置 cell.selectionStyle = UITableViewCellSelectionStyleBlue?

Posted

技术标签:

【中文标题】为啥不能设置 cell.selectionStyle = UITableViewCellSelectionStyleBlue?【英文标题】:Why can't you set the cell.selectionStyle = UITableViewCellSelectionStyleBlue?为什么不能设置 cell.selectionStyle = UITableViewCellSelectionStyleBlue? 【发布时间】:2016-03-03 14:54:40 【问题描述】:

我已经看到了以下问题,但未解释您可以简单地将cell.SelectedStyle 设置为UITableViewCellSelectionStyleGrayUITableViewCellSelectionStyleNone,但不能将其 selectionStyle 设置为UITableViewCellSelectionStyleBlue

他们只是提供了一个hack,没有解释。我只是想知道为什么,以便更好地理解objective-c

UITableViewCellSelectionStyleBlue is not working

ios7 UITableViewCell selectionStyle won't go back to blue

Cannot change UITableView blue highlight color

【问题讨论】:

cell.selectionStyle = UITableViewCellSelectionStyleBlue 应该放在返回单元格之前; 【参考方案1】:

那么你不会喜欢这个答案。从 iOS 7 开始,设置

cell.selectionStyle = UITableViewCellselectionStyleBlue;

现在会给你灰色。 Apple 在 iOS 7 中去掉了它,所以现在 selectionStyleBlue 不再以蓝色存在。它是灰色的。

这是来自 Apple 的 UITableViewCell 类参考文档的引用:

蓝色

选中时单元格具有默认背景颜色。

在 iOS 7 中,选择颜色不再是蓝色。请改用 UITableViewCellSelectionStyleDefault。

适用于 iOS 2.0 及更高版本。

当然,我相信您已经发现,您可以创建一个 UIView 并将其设置为背景以模拟蓝色选择。

这是该方法的链接:UITableView cell blue highlight on selection

编辑:

只是为了清楚。 UITableViewCellSelectionStyleBlue 使选择样式变为灰色。

UITableViewCell 没有默认方法使选择样式变为蓝色。

为了使选择样式成为默认灰色以外的任何颜色,您必须像我提供的链接一样创建自定义 UIView。

【讨论】:

谢谢!苹果摆脱了它!?!我无法理解你在说什么。我可以在UITableView.h 中看到它:@property (nonatomic) UITableViewCellSelectionStyle selectionStyle; // default is UITableViewCellSelectionStyle*Blue*. ALSOOO:typedef NS_ENUM(NSInteger, UITableViewCellSelectionStyle) UITableViewCellSelectionStyleNone, UITableViewCellSelectionStyle*Blue*, UITableViewCellSelectionStyleGray, UITableViewCellSelectionStyleDefault NS_ENUM_AVAILABLE_IOS(7_0) 查看我对问题的编辑.. UITableViewCellSelectionStyleBlue 实际上是灰色的.. 我知道这很令人困惑,但所有 UITableViewCellSelectionStyle 属性都将是灰色的......从现在开始就假装 UITableViewCellSelectionStyleBlue 不存在!! (bc 它的灰色) @asma22 Apple 在发布 iOS 7 时重新设计了 UI。他们停止使用蓝色进行选择(实际上他们在每个应用程序中使用不同的颜色)并且常量不再有意义,因此他们将其重命名为 @987654326 @哪个更明智。 你能告诉我为什么苹果的文档中有UITableViewCellSelectionStyleBlue吗?似乎没有任何目的。 我会假设人们的应用程序不会崩溃,在 iOS 7 之前设置 UITableViewCellSelectionStyleBlue .. 你的权利,基本上它没有任何目的

以上是关于为啥不能设置 cell.selectionStyle = UITableViewCellSelectionStyleBlue?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我不能设置 DataGridTextColumn 的样式?

为啥 Chrome 不能设置 cookie

为啥我的 Entity Framework Code First 代理集合为空,为啥我不能设置它?

为啥我不能从不同的 ViewController 视图设置视图?

为啥redis不能设置最大打开文件

为啥不能根据道具反应设置初始状态