我正在尝试实现一个动画的UIPickerView
。我的动画是什么意思,当视图第一次加载时,没有选择器视图可见。屏幕显示按钮。点击按钮后,UIPickerView
从底部向上滑动。
请注意,同一视图上会有多个选择器视图。本身将包含10个按钮。在点击每个按钮时,选择器视图会向上滑动并显示一组选项。每个按钮都有不同选项的选择器视图。
到目前为止我尝试了什么:
import UIKit
class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDelegate {
@IBOutlet var picker: UIPickerView!
var pickerData = [String]()
override func viewDidLoad() {
super.viewDidLoad()
// Connect data:
self.picker.delegate = self
self.picker.dataSource = self
pickerData = ["Item 1", "Item 2", "Item 3", "Item 4", "Item 5", "Item 6"]
self.picker.hidden = true
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// The number of columns of data
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 1
}
// The number of rows of data
func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return pickerData.count
}
// The data to return for the row and component (column) that's being passed in
func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return pickerData[row]
}
@IBAction func showPicker(sender: AnyObject) {
self.picker.hidden = false
}
}
我实施了一个UIPickerView
并使用隐藏命令隐藏viewDidLoad
上的选择器视图。点击按钮后,我设置了picker.hidden = false
。这使得选择器视图再次可见。
我的关注&问题:
我担心的是,使用隐藏方法是否是在按钮上隐藏和显示多个选择器视图的正确方法?
我的问题是如何正确地做到这一点,我如何动画它,如上所述。
提前致谢。
答案 0 :(得分:1)
我建议使用autolayout
并在屏幕底部添加摘录,其中y
从屏幕底部开始。然后当按下按钮时,我会将其y
设置为
yConstraint.constant = self.view.frame.size.height-picker.frame.size.height
然后创建动画并添加self.view.layoutIfNeeded()
(为约束更改设置动画)