#ios #iphone #swift #swift3
#iOS #iPhone #swift #swift3
Вопрос:
У меня есть пользовательский вид выбора, и он отлично работает, но есть одна проблема. У вас есть возможность снова нажать кнопку, и представление выбора будет отклонено. Но когда он отклоняет текст в unbutton, он становится пустым и не остается прежним («Выбрать» — это кнопка, которая открывает окно выбора, и ее текст изменяется, когда вы выбираете что-то из окна выбора, чтобы отразить то, что вы выбрали. Я хочу, чтобы это произошло, если вы снова нажмете кнопку выбора (а не вид выбора), тогда текст в unbutton не изменится и станет пустым.
var pickValue:AnyObject? {
didSet{
if let pickValue = pickValue{
Select.setTitle("(pickValue)", for: UIControlState())
}else{
Select.setTitle("Select", for: UIControlState())
}
}
}
@IBAction func Show(_ sender: AnyObject) {
let pickercontrol = LCTableViewPickerControl(
frame: CGRect(x: 0, y: self.view!.frame.size.height 150, width: view.bounds.size.width - 50, height: 150),
title: "Please pick an item",
value: pickValue,
items: ["minute", "hour", "day", "month", "year"],
offset: CGPoint(x: 0, y: 0))
pickercontrol?.tag = 1
view.addSubview(pickercontrol!)
pickercontrol?.show(in: view) { [weak self](sender, item) in
guard let view = sender as? LCTableViewPickerControl else{
return
}
view.dismiss()
self?.pickValue = item as AnyObject?
}
}
Изображение при инициализации представления выбора и возможности выбора значения
Комментарии:
1. в будущем обязательно используйте формат «образец кода», а не «фрагмент кода». фрагмент кода предназначен для укладки коротких однострочных строк кода или имени функции. Формат примера кода (выполняемый путем отступа четырех пробелов или выделения и щелчка инструмента на панели форматирования) Предназначен для длинного кода и добавляет полосы прокрутки и т. Д. И Делает большие части кода более удобочитаемыми.
2. Я сделал это. Как вы думаете, вы можете это исправить
3. К сожалению, я ничего не знаю о swift. Сайт проходит рецензирование на предмет качества, и я просто помогал вашему сообщению выглядеть более привлекательным для других. Надеюсь, что кто-нибудь сможет найти ответ. Приветствия!
Ответ №1:
Вам нужно установить, какой элемент управления вы хотите. for UIControlState.normal
Комментарии:
1. Вы также можете рассмотреть возможность безопасного развертывания своих опций, а не принудительного их развертывания. Если инициализатор LCTableViewPickerControl возвращает необязательное значение, вы можете инициализировать его, а затем сказать: «guard let picker = pickercontrol else { return }» Это убережет вас от принудительного разворачивания (и сбоя, если оно равно нулю) при добавлении в качестве подвида.
2. Где вы изначально устанавливаете заголовок кнопки? Если вы делаете это в «viewWillAppear», он снова запустится после того, как вы отклоните модальное представление, поэтому, если вы устанавливаете заголовок там, он будет установлен на любое начальное значение. Я не совсем понимаю, что происходит с такой ограниченной картиной.
3. Сейчас я не могу подключиться к skype. У вас есть свой код на github или что-то в этом роде?
4. мое имя идентификатора skype и github — jackpaster22. Вы можете отправить мне сообщение по skype или github
5. не могли бы вы мне помочь
Ответ №2:
Другой вариант — сохранить текущий текст и при нажатии кнопки «Отклонить» присвоить выбранному сборщиком заголовку значение ранее сохраненной строки.
Это позволит вам прокручивать, делать любое количество выборок и после отмены возвращаться к исходному значению.