Поставьте галочку в левой части UITableViewCell
Я хочу сделать что-то похожее на страницу настроек WiFi: когда вы нажимаете на ячейку таблицы, поставьте флажок в левой части ячейки и на экране появится вспомогательный вид кнопки раскрытия, чтобы показать более подробную информацию.
Мой вопрос: есть ли способ поставить галочку в левой части UITableViewCell без создания пользовательского UITableViewCell?
Ответы
Ответ 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
Нет. Для этого вам нужно создать пользовательскую ячейку.
Ответ 6
Вы должны посмотреть ссылку UITableViewCell и руководство по просмотру таблиц. Используйте стандартный стиль ячейки с атрибутом editingAccessoryType
, установленным в UITableViewCellAccessoryCheckmark
.