2015-11-30 122 views
0

我想實現動畫的UIPickerView。我的動畫意思是當視圖第一次加載時,沒有選擇器視圖可見。該屏幕顯示按鈕。點擊按鈕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

我建議使用autolayout並在屏幕底部添加採樣器,其屏幕底部從y開始。然後當按下按鈕,我會設置它的y

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

然後創建動畫和添加self.view.layoutIfNeeded()(動畫約束變化)