动画UIPickerView(向上滑动)

时间:2015-11-30 09:19:20

标签: ios swift swift2 uipickerview uiviewanimation

我正在尝试实现一个动画的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。这使得选择器视图再次可见。

我的关注&问题:

我担心的是,使用隐藏方法是否是在按钮上隐藏和显示多个选择器视图的正确方法?

我的问题是如何正确地做到这一点,我如何动画它,如上所述。

提前致谢。

1 个答案:

答案 0 :(得分:1)

我建议使用autolayout并在屏幕底部添加摘录,其中y从屏幕底部开始。然后当按下按钮时,我会将其y设置为

yConstraint.constant = self.view.frame.size.height-picker.frame.size.height

然后创建动画并添加self.view.layoutIfNeeded()(为约束更改设置动画)