我试图在iOS8 Swift应用程序上重现此行为(请参阅下面的截图,“mail multiple select to delete”行为)。 当设置为“编辑”时,会显示左侧选择圈,但在选择时它们不会更改为蓝色复选标记。(没有任何可见的情况发生,或者它发生在右侧...屏幕外。 )
从各种谷歌搜索中我尝试将accessoryType设置为复选框,但是它出现在右侧(而不是左侧)。[这是一个老建议,是否还要添加一个复选标记?)
我已经搜索了这个样本(甚至下载并运行它并将其调整到我的代码附近,并且它可以工作)但是我看不到它和我的应用程序之间的差异。
一些数据点:
其他StackOverflow问题/答案暗示某些因素导致UITableView无法知道左侧的复选标记是不是右侧。我可以相信,但我找不到它。任何帮助表示赞赏。
所需效果(来自示例屏幕截图):
https://developer.apple.com/library/ios/samplecode/TableMultiSelect/Introduction/Intro.html
表格设置
表格单元格设置
答案 0 :(得分:15)
如果您的cellForRowAtIndexPath中有selectionStyle = .None
,请将其删除。
我和你一样(使用Xcode 7,iOS9,Swift 2.0)。我在网上找到的大部分文章都是关于右侧的复选标记,我的故事板看起来很完美。我唯一的问题是,当我点击该行时,我无法在左侧显示复选标记。
通过您的帖子,我能够比较源代码并弄明白 - 谢谢!
答案 1 :(得分:2)
确保单元格的色调不是白色,否则您将在白色圆圈上获得白色复选标记...
答案 2 :(得分:0)
就我而言,它是已接受的答案以及故事板/ IB中的UITableViewCell选择集的组合。我将Selection设置为“None”以防止选择突出显示。如果要显示编辑复选标记,则无法执行此操作。对于那些可能会在未来发现这一点的人来说,这只是一个额外的帮助!
答案 3 :(得分:0)
我解决了这个问题。 将selectionStyle设置为默认值。
我在子类UITableViewCell中的方法。
override func awakeFromNib() {
super.awakeFromNib()
//Here I solved problem
let bgView = UIView()
bgView.frame = self.frame
bgView.backgroundColor = selectionColor //Here your color
self.selectedBackgroundView? = bgView
}