2015-12-21 45 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 
    } 
} 
相关问题