将复选标记放在UITableViewCell的左侧

时间:2012-01-06 09:03:37

标签: iphone objective-c ios uitableview

我想制作类似于WiFi设置页面的内容:当您点击表格单元格时,在单元格的左侧放置一个复选框,并在右侧显示一个显示按钮附件视图以显示更多详细信息。

我的问题:有没有办法在不构建自定义UITableViewCell的情况下将复选标记放在UITableViewCell的左侧?

6 个答案:

答案 0 :(得分:122)

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

我用于复选框的unicode符号为\u2705用于选中,\u2B1C用于未选中(与iOS 5上的\U0001F533几乎相同)。 iOS渲染了几个unicode symbols as icons

以下是其他一些符号:

enter image description here

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

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

enter image description here

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";

答案 1 :(得分:6)

当然你可以这样做:)例如使用UITableViewCellStyle

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

...并在“可选图像视图”中添加自定义“复选标记”图像。

答案 2 :(得分:0)

所以这是一种方法。将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
     }
}

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

此方法确保当用户选择新行时,复选标记在当前单元格上消失。

在这种情况下,我正在加粗图像视图右侧的文本,以进一步指示它是选定的行。

答案 3 :(得分:0)

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

答案 4 :(得分:-2)

没有。您必须为此创建自定义单元格。

答案 5 :(得分:-3)

您应该查看UITableViewCell reference and Table View Guide。使用标准单元格样式,editingAccessoryType属性设置为UITableViewCellAccessoryCheckmark