У меня есть 4 UIPickerViews, которые я действую на изменения в каждом отдельном представлении средства выбора, используя операторы if для каждого имени представления средства выбора. Для одного из сборщиков, таймера с h: m: s, я пытаюсь добавить метки для единиц времени, используя этот ответ .
Он отлично работает с одним средством выбора, но когда я добавляю в свой основной код с другими 3 средствами выбора, я хочу вернуть только значение для alarmPicker. Мне нужен возврат типа UIView вне оператора if, но я не могу понять, что было бы, если бы я создавал UILabels только для alarmPicker. Если я возвращаю UIView (), другие сборщики не заполняют свои строки titleForRow.
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
if pickerView == picker1 {
// code
}
if pickerView == picker2 {
// code
}
if pickerView == picker3 {
// code
}
if pickerView == alarmPicker {
if let label = pickerView.view(forRow: row, forComponent: component) as? UILabel {
if component == 0, row > 1 {
label.text = String(row) + " hours"
}
else if component == 0 {
label.text = String(row) + " hour"
}
else if component == 1 {
label.text = String(row) + " min"
}
else if component == 2 {
label.text = String(row) + " sec"
}
}
}
}
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
if pickerView == alarmPicker {
let label = UILabel()
label.text = String(row)
label.textAlignment = .center
return label
}
return UIView()
}