Подтвердить что ты не робот

Поставьте галочку в левой части UITableViewCell

Я хочу сделать что-то похожее на страницу настроек WiFi: когда вы нажимаете на ячейку таблицы, поставьте флажок в левой части ячейки и на экране появится вспомогательный вид кнопки раскрытия, чтобы показать более подробную информацию.

Мой вопрос: есть ли способ поставить галочку в левой части UITableViewCell без создания пользовательского UITableViewCell?

4b9b3361

Ответ 1

Ответ: ДА! Вам не нужно создавать пользовательскую ячейку для этого или добавлять изображения. Чтобы имитировать флажки, вам нужно только добавить символ юникода для состояния флажка в текст ячейки.

Юникодовые символы, которые я использую для флажков, являются \u2705 для отмеченных и \u2B1C для непроверенных (почти такие же, как \U0001F533 на iOS 5). iOS отображает несколько символов unicode в качестве значков.

Вот некоторые другие символы:

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

Ответ 2

Конечно, вы можете это сделать:) Например, используйте UITableViewCellStyle

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

... и поместите пользовательский образ "галочки" в этом "дополнительном представлении изображения".

Ответ 3

В Swift вы можете нажать Command + Ctrl + пробел, чтобы показать смайлики и специальные символы, или вы можете скопировать это ✓ ✔️

Ответ 4

Итак, вот способ сделать это. Поместите 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, чтобы отметить объекты PNGs в папке "Активы". Обратите внимание, что в этом примере они называются "BlueCheck", но используйте то, что вы называете активами вашей маркировки.

Этот подход гарантирует, что когда пользователь выбирает новую строку, галочка гаснет в текущей ячейке.

В этом случае я полужирный текст, который находится справа от изображения, чтобы указать, что это была выбранная строка.

Ответ 5

Нет. Для этого вам нужно создать пользовательскую ячейку.