我有(从上到下)2个UILabel,1个UIPickerView,3个UITexfield和1个按钮。鉴于选择器的大小,在键盘出现时,它与3.5和4英寸设备上的文本字段重叠。当键盘显示时,我使用了一些代码来弹出文本字段,但我不确定如何处理选择器。我试着将它隐藏在键盘上,但它太突然了,用户可能想要改变他们不能轻易做出的选择。鉴于尺寸限制,我应该如何处理选择器?
override func viewDidLoad() {
super.viewDidLoad()
countyPicker.delegate = self
countyPicker.dataSource = self
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillShow:"), name:UIKeyboardWillShowNotification, object: nil);
NSNotificationCenter.defaultCenter().addObserver(self, selector: Selector("keyboardWillHide:"), name:UIKeyboardWillHideNotification, object: nil);
}
func keyboardWillShow(sender: NSNotification) {
self.view.frame.origin.y -= 150
}
func keyboardWillHide(sender: NSNotification) {
self.view.frame.origin.y += 150
// countyPicker.hidden = true
}
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return titleData.mdCounties.count
}
func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent componefnt: Int) {
// countyPicker.alpha = 0.3
selectedCounty = titleData.mdCounties[row].name
}
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String! {
return titleData.mdCounties[row].name!
}
答案 0 :(得分:0)
您可以使用一条简单的线条来指示选择器的选择。在点击线条时,您可以使用动画显示或隐藏线条下方的选择器。
在UITableView
中执行此操作可能有意义。查看Apple在编辑活动时如何在其日历应用中显示和隐藏日期选择器。在插入和删除表视图行时,您可以使用标准行动画非常精美地完成此操作。
表格视图解决方案也更加灵活,因为它将始终有效,即使将来必须显示的项目数量会增加,或者Apple推出新的iPhone nano。
答案 1 :(得分:0)
将1 UIPickerView和3 UITexfield放在一个视图中,并在键盘出现时弹出整个视图。
由于您已经编写了用于弹出文本字段的代码,因此可以解决这个问题。
希望这会对你有所帮助。 :)