Итак, вот способ сделать это. Поместите 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
}
}
Наконец, убедитесь, что в папке «Ресурсы» есть активы PNG с отметками @ 2x и @ 3x. Обратите внимание, что в этом примере они называются «BlueCheck», но используйте, как всегда, ваши активы галочки.
Этот подход гарантирует, что когда пользователь выбирает новую строку, флажок исчезает в текущей ячейке.
В этом случае я выделю текст справа от изображения, чтобы дополнительно указать, что это была выбранная строка.