把复选标记在UITableViewCell的左侧

我想做类似于WiFi设置页面的东西:当您点击表格单元格时,在单元格的左侧放置一个checkbox,并在右侧显示一个button附件视图以显示更多详细信息。

我的问题:有没有办法把复选标记在UITableViewCell的左侧,而不build立一个自定义的UITableViewCell?

答案是肯定的! 您不必为此创build自定义单元格或添加图像视图。 要模拟checkbox,您只需在单元格文本中添加checkbox状态的unicode符号。

我用于checkbox的unicode符号是\u2705用于勾选, \u2B1C用于未勾选(几乎与iOS 5上的\U0001F533相同)。 iOS将多个unicode符号呈现为图标 。

这里是一些其他的符号:

在这里输入图像说明

 @"\u2611", @"\u2B1C", @"\u2705", @"\u26AB", @"\u26AA", @"\u2714", @"\U0001F44D", @"\U0001F44E" 

模仿Wi-Fi设置页面(使用UITableViewCellStyleValue1 ):

在这里输入图像说明

 cell.textLabel.text = @"\u2001 Wi-Fi 1"; cell.detailTextLabel.text = @"\U0001F512 \u268A"; cell.textLabel.text = @"\u2001 Wi-Fi 2"; cell.detailTextLabel.text = @"\U0001F512 \u268C"; cell.textLabel.text = @"\u2713 Wi-Fi 3"; cell.detailTextLabel.text = @"\U0001F513 \u2630"; 

当然你可以做到这一点:)例如使用UITableViewCellStyle

 UITableViewCellStyleDefault, // Simple cell with text label and optional image view //(behavior of UITableViewCell in iPhoneOS 2.x) 

…并在该“可选图像视图”中放置自定义的“复选标记”图像。

在Swift中,你可以按Command + Ctrl +空格键来显示表情和特殊字符,或者你可以复制这个✓✔️

所以这是一个办法。 在单元格的左边放置一个UIImageView。 不要将图像设置为空白。

然后,假设你正在为这个UITableViewCell做一个自定义的单元格和一个类,可以这样做:

 import UIKit class MyCustoTableViewCell: UITableViewCell { @IBOutlet weak var commandOption: UILabel! @IBOutlet weak var checkMarkImage: UIImageView! // Sets a left side checkmark on a cell when selected override func setSelected(selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) self.checkMarkImage.image = selected ? UIImage(named: "BlueCheck") : .None self.commandOption.font = selected ? UIFont(name: "Avenir-Heavy", size: 22) : UIFont(name: "Avenir-Book", size: 22) // more check mark on the right side // self.accessoryType = selected ? .Checkmark : .None } } 

请注意底部注释是如果你想在右边的复选标记。 super.setSelecdted方法在用户点击表格单元格时触发。 确保你也有这个实现:

  func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { // do any changes needed here or leave blank if just adding check } } 

最后,确保您的资产文件夹中有@ 2x和@ 3x复选标记PNG资产。 请注意,在这个例子中,这些被称为“BlueCheck”,但使用您的复选标记资产被称为。

这种方法确保当用户select一个新行时,复选标记在当前单元格上消失。

在这种情况下,我将粗体显示在图像视图右侧的文本,以进一步表明它是所选的行。

不,你必须为此创build一个自定义单元格。

你应该看看UITableViewCell引用和表视图指南 。 使用带有editingAccessoryType属性的标准单元格样式设置为UITableViewCellAccessoryCheckmark