Как я могу установить состояние по умолчанию UISegmentedControl?
-
06-07-2019 - |
Вопрос
Есть ли способ установить начальный выбранный сегмент в UISegmentedControl в Интерфейсном Разработчике, или я должен сделать это в коде? Если это в коде, является ли viewDidLoad лучшим местом для его установки?
Решение
В Интерфейсном Разработчике, когда вы выбираете объект UISegmentedControl в своем пользовательском интерфейсе, затем в панели атрибутов, в сегментном управлении есть раскрывающееся меню сегмента, выберите сегмент, который вы хотите выбрать (0,1 и т. д.) и отметьте опцию «выбранный» под ним.
Другие советы
Из кода вы можете просто сделать self.segmentedControl.selectedSegmentIndex = someDefaultIndex
. Р>
Должен ли он быть установлен в viewDidLoad:
или нет, полностью зависит от структуры вашего приложения. Например, если ваше приложение запускается и загружает представление в первый раз и должно установить для элемента управления значение, которое оно имело во время предыдущего запуска приложения, то это определенно имеет смысл сделать там. Р>
Если вы не используете раскадровки и хотите установить индекс по умолчанию после некоторой настройки / работы в сети, как я, этот маленький фрагмент кода выберет что-то, если пользователь этого не сделал. Я поместил это в мой подкласс UISegmentedControl
, но вы можете разместить его где угодно. ( Swift 3 )
Decl: var UISegmentedControlNoSegment: Int { get }
Desc: A segment index value indicating that there is no selected segment. See selectedSegmentIndex for further information.
<Ч>
Короткая версия:
if selectedSegmentIndex == UISegmentedControlNoSegment {
selectedSegmentIndex = initialIndex
}
<Ч>
Более длинная версия
func reloadData() {
guard let numberOfItems = dataSource?.numberOfItems() else {
return
}
removeAllSegments()
for index in 0...numberOfItems {
insertSegment(with: $image, at: index, animated: false)
}
if selectedSegmentIndex == UISegmentedControlNoSegment {
selectedSegmentIndex = initialIndex
}
}
После нажатия на Сегментированный элемент управления перейдите туда, где вы создали сегменты, и выберите тот, который вы хотите использовать по умолчанию. Затем, ниже, будет поле «Выбрано». по этому. Выберите это, и это будет по умолчанию.