2016-04-18 19 views
5

UIPickerView'ım var, bunu çok satırlı yapabilir miyim? Uzun metnim var.UIPickerView Multilin'i nasıl hızlı bir şekilde yapabilirim?

İşte kodum.

func pickerView(pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat 
    { 
     return 70.0 
    } 

Ve sen: İşte

func pickerView(pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? { 
    var returnResult: String = "" 
    if pickerView.tag == 1 { 
    //This picker has long text 
     let position: UInt = UInt(row) 
     returnResult = list.objectAtIndex(position).Description.Value; 
    } else if pickerView.tag == 2 { 
     returnResult = questionTwoOptions[row] 
    } else if pickerView.tag == 3 { 
     returnResult = questionThreeOptions[row] 
    } else { 
     returnResult = "" 
    } 
    print(returnResult) 
    return returnResult 
} 

benim viewForRow Methode Sen

şey gibi rowHeightForComponent (UIPickerView) değiştirmek zorunda gidiyoruz

func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView?) -> UIView { 
    let label = UILabel(frame: CGRectMake(0, 0, 400, 44)); 
    label.lineBreakMode = .ByWordWrapping; 
    label.numberOfLines = 0; 
    //view!.addSubview(label) 
    return label; 
} 
+1

satır yüksekliği en fazla iki satır alabilir içeriğiniz varsa yöntem ve gerektiğinde bir "UILabel" döndürün. – rmaddy

cevap

10

Sen Özel görünümle böyle deneyebilirsiniz

func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView?) -> UIView { 
    let label = UILabel(frame: CGRectMake(0, 0, 400, 44)); 
    label.lineBreakMode = .ByWordWrapping; 
    label.numberOfLines = 0; 
    label.text = arr[row] 
    label.sizeToFit() 
    return label; 
} 

Eğer `viewForRow` temsilci Uygulamak da ayarlayabilirsiniz

func pickerView(pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat { 
    return 80 
} 
0

olduğunu bunu çok satırlı olarak görebilecek, geri kalan her şey iyi iş çıkardın.

İlgili konular