2015-12-21 88 views
0

我想編碼包含兩個選擇器的視圖(彈出窗口),以便輸入數週(年)和使用兩個單獨的選取器視圖的年數。首先,我開始創建一個新的類作爲UIView的子類。接下來,我編寫了窗口,它應該彈出,以防它被調用。 現在我遇到了問題,我無法用數據填充我的兩個選擇器視圖,因爲UIView不支持UIPickerViewDataSource。 我該如何解決這個問題,因爲我只想將它顯示爲一個小彈出窗口,而不是打開整個UIViewController。如何在一個UIView類中編寫自定義選取器?

回答

0

它應該是一個控制器,顯示在彈出窗口中。

演示者應該使用UIPopoverPresentationControllerDelegate以覆蓋方法來支持iPhone上的彈出(默認情況下,它們將以模態方式呈現)。

extension ItemViewController: UIPopoverPresentationControllerDelegate { 
    func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle { 
    return .None 
    } 
} 

使用此方法來呈現你的選擇器控制器:

func instantiatePicker(picker: UIViewController, sender: UIView) { 
    picker.modalPresentationStyle = .Popover 
    let ppc = picker.popoverPresentationController! 
    ppc.delegate = self 
    ppc.permittedArrowDirections = .Any 
    ppc.sourceView = sender 
    ppc.sourceRect = sender.bounds 
    presentViewController(picker, animated: true, completion: nil) 
} 

在您選擇器控制器覆蓋這個屬性來調整酥料餅大小你的慾望,這樣的:

override var preferredContentSize: CGSize { 
    get { 
     return CGSize(width: datePicker.bounds.width, height: datePicker.bounds.height + anotherPicker.bounds.height) 
    } 
    set { 
     super.preferredContentSize = newValue 
    } 
} 
相關問題