#ios #swift #xcode #swiftui
#iOS #swift #xcode #swiftui
Вопрос:
Я использую UIPickerView, но он занимает слишком много места на экране, я не понимаю, почему он должен показывать другие доступные параметры, а не только выбранный.
Существует ли какой-либо стандартный виджет, который можно было бы разумно использовать для отображения одного значения, но затем, при нажатии, представить список произвольной длины, из которого нужно выбрать, чтобы изменить это значение? Т.Е. выпадающий список или аналогичный?
Большое спасибо!
РЕДАКТИРОВАТЬ: я думаю, что я собираюсь использовать UIStepper. Это немного более неуклюже, но на самом деле это нормально для моего варианта использования, поскольку я выбираю numbers.
Ответ №1:
В IOS нет выпадающего меню. Но вы можете создать TableView, действующий как выпадающий список, в соответствии с вашими потребностями.
Написание всех кодов будет беспорядочным из-за логики ограничений, но надеюсь, что эти строки кода будут полезны, и надеюсь, что вы дойдете до сути.
var dropView = dropDownView()
var height = NSLayoutConstraint()
var isOpen = false
// control with protocol your state
protocol DropDownProtocol {
func DropDownPressed(string : String)
}
class DropDownButon: UIButton, DropDownProtocol {
func dropDownPressed(string: String) {
self.setTitle(string, for: .normal)
self.dismissDropDown()
}
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
if isOpen == false {
isOpen = true
// animate your dropView for opening
} else {
isOpen = false
// animate your dropView for closing
}
}
Комментарии:
1. Спасибо. Я думаю, что сейчас я собираюсь использовать что-то простое — UIStepper — но если это не сработает, я продолжу это. Спасибо за ответ.
2. @Bruce как вы продолжили? не могли бы вы оставить отзыв, пожалуйста, для будущих случаев?