Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/116.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 针对每个屏幕大小自动调整UIPickerView的大小/大小_Ios_Swift_Resize_Uipickerview_Size Classes - Fatal编程技术网

Ios 针对每个屏幕大小自动调整UIPickerView的大小/大小

Ios 针对每个屏幕大小自动调整UIPickerView的大小/大小,ios,swift,resize,uipickerview,size-classes,Ios,Swift,Resize,Uipickerview,Size Classes,我正在尝试调整UIPickerView的大小,以及其中的内容,我已经调整了picker视图的高度: let pickerView = UIPickerView() if DeviceType.IS_IPHONE_4_OR_LESS { pickerView.frame=CGRectMake(0, 200, view.frame.width, 100) } else if DeviceType.IS_IPHONE_5 { pickerVie

我正在尝试调整UIPickerView的大小,以及其中的内容,我已经调整了picker视图的高度:

    let pickerView = UIPickerView()

    if DeviceType.IS_IPHONE_4_OR_LESS {
        pickerView.frame=CGRectMake(0, 200, view.frame.width, 100)
    } else if DeviceType.IS_IPHONE_5 {
        pickerView.frame=CGRectMake(0, 200, view.frame.width, 200)
    } else if DeviceType.IS_IPHONE_6 {
        pickerView.frame=CGRectMake(0, 200, view.frame.width, 200)
    } else if DeviceType.IS_IPHONE_6P {
        pickerView.frame=CGRectMake(0, 200, view.frame.width, 250)
    } else if UIDevice.currentDevice().userInterfaceIdiom == .Pad {
        pickerView.frame=CGRectMake(0, 200, view.frame.width, 300)
    }

    //        pickerView.backgroundColor = .whiteColor()

    pickerView.showsSelectionIndicator = true
    pickerView.delegate = self
    pickerView.dataSource = self
    self.pickerView = pickerView

但是现在我想调整里面的内容,每行的高度,文本的大小,如果内容太长,我想做多行,但是我不知道怎么做

我的代码:

@IBOutlet var tfProjet: UITextField!
var pvProjetData = ["-Choisir-", "Rachat de crédits", "Renégociation de crédits"]
override func viewDidLoad() {

    super.viewDidLoad()

    let pickerView = UIPickerView()

    if DeviceType.IS_IPHONE_4_OR_LESS {
        pickerView.frame=CGRectMake(0, 200, view.frame.width, 100)
    } else if DeviceType.IS_IPHONE_5 {
        pickerView.frame=CGRectMake(0, 200, view.frame.width, 200)
    } else if DeviceType.IS_IPHONE_6 {
        pickerView.frame=CGRectMake(0, 200, view.frame.width, 200)
    } else if DeviceType.IS_IPHONE_6P {
        pickerView.frame=CGRectMake(0, 200, view.frame.width, 250)
    } else if UIDevice.currentDevice().userInterfaceIdiom == .Pad {
        pickerView.frame=CGRectMake(0, 200, view.frame.width, 300)
    }

    //        pickerView.backgroundColor = .whiteColor()

    pickerView.showsSelectionIndicator = true
    pickerView.delegate = self
    pickerView.dataSource = self
    self.pickerView = pickerView

    tfProjet.inputView = pickerView
}

func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int{
    return 1
}


func selectRow(row: Int, inComponent component: Int, animated: Bool){

}

func updatePicker(){
    self.pickerView!.reloadAllComponents()
    pickerView.selectRow(0, inComponent: 0, animated: false)
}

func pickerView(pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {

    if tfProjet.isFirstResponder(){
        return pvProjetData.count
    }
    return 1
}

func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {

    if tfProjet.isFirstResponder(){
        return pvProjetData[row]
    }
    return ""
}

func pickerView(pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {

    if tfProjet.isFirstResponder(){
        let itemselected = pvProjetData[row]
        tfProjet.text = itemselected
        self.tfProjet.endEditing(true)
    }
}

忘记用代码来做,使用autolayout。Auytolayout是独立于设备的。

忘记使用代码,请使用autolayout。Auytolayout是独立于设备的。

我之所以使用代码,是因为如果我放置一个选择器视图,它会显示一个块,但当您单击选择器视图时,我不想看到什么。更多信息,请使用stacklayout并将hidden属性设置为选择器视图。示例:我之所以使用代码,是因为如果我放置一个选取器视图,它会显示一个bloc,但当您单击选取器视图时,我不想看到什么。更多信息,请使用stacklayout,并将hidden属性设置为您的选取器视图。例子: