UITableView.appearance().separatorStyle 不起作用
Posted
技术标签:
【中文标题】UITableView.appearance().separatorStyle 不起作用【英文标题】:UITableView.appearance().separatorStyle not working 【发布时间】:2015-04-23 18:59:46 【问题描述】:在我的 AppDelegate 中,我设置了 UITableView 的外观,例如背景和 rowHeight 等。但不知何故,它不适用于separatorStyle
。是否有任何原因导致它不起作用或者这是一个错误?我在 ViewController 本身中使用 tableView.separatorStyle = .None
设置 separatorStyle
没有问题。
我的 AppDelegate 中的代码:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool
application.statusBarHidden = true
UIToolbar.appearance().barTintColor = UIColor.grayColor()
UITableView.appearance().backgroundColor = UIColor.blackColor()
UITableView.appearance().rowHeight = 40
UITableView.appearance().separatorStyle = .None
UITableViewCell.appearance().backgroundColor = UIColor.clearColor()
return true
奇怪的是,separatorColor
确实有效。
编辑:
当我查看UITableView
时,会显示:
// Appearance
var sectionIndexMinimumDisplayRowCount: Int // show special section index list on right when row count reaches this value. default is 0
@availability(ios, introduced=6.0)
var sectionIndexColor: UIColor? // color used for text of the section index
@availability(iOS, introduced=7.0)
var sectionIndexBackgroundColor: UIColor? // the background color of the section index while not being touched
@availability(iOS, introduced=6.0)
var sectionIndexTrackingBackgroundColor: UIColor? // the background color of the section index while it is being touched
var separatorStyle: UITableViewCellSeparatorStyle // default is UITableViewCellSeparatorStyleSingleLine
var separatorColor: UIColor! // default is the standard separator gray
@availability(iOS, introduced=8.0)
@NSCopying var separatorEffect: UIVisualEffect? // effect to apply to table separators
有点奇怪,因为它在评论Appearance
下。与separatorColor
相比,标头也没有任何不同。
【问题讨论】:
【参考方案1】:这并没有什么“奇怪”、“不工作”或“错误”。并非所有东西都与外观代理兼容。看标题:
@property (nonatomic) UITableViewCellSeparatorStyle separatorStyle; // default is UITableViewCellSeparatorStyleSingleLine
@property (nonatomic, retain) UIColor *separatorColor UI_APPEARANCE_SELECTOR; // default is the standard separator gray
注意到什么了吗? separatorColor
标记为 UI_APPEARANCE_SELECTOR
。 separatorStyle
不是。这意味着您可以将separatorColor
与外观代理一起使用,而您不能将separatorStyle
与外观代理一起使用。
【讨论】:
我也检查过了,但是在 Swift 中它没有显示UI_APPEARANCE_SELECTOR
,还是我看错了部分? (我已经用 Swift 中可见的问题编辑了我的问题)
不,它不会出现在标题的 Swift 翻译中,但这不是重点。重点是我在回答中所说的 - 并非所有内容都与外观代理兼容:特别是分隔符颜色是,分隔符样式不是。这就是事实。不是错误。事实。标题是否告诉你这个事实并不重要;这仍然是事实。我只是使用标题来表明这 是 一个事实。
冷静的人,我从来没有说过你错了,甚至不同意你。当两种方法看起来相同时,质疑某事是否是一种犯罪?显然,试图理解某些事情值得投反对票。在这里为新手加油!
当我使用 Swift 时,您的方法无法弄清楚为什么它不起作用。因此,每当某些东西不起作用时,我只需要假设 并非所有东西都兼容 并继续前进,放弃并使用另一种方式。很棒的一课。以上是关于UITableView.appearance().separatorStyle 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
全局设置UITableView的属性|正确计算contentSize|MJRefresh mj_footer 能正常隐藏在底部,不因为数据过少展示在页面中部
tableView 使用 reloadSections:withRowAnimation: 时,会跳动的问题