2017-02-10 7 views
0

Ich erstellte UIPickerView programmgesteuert in Controller und ich muss ein Bild UIPickerView mit entsprechenden Label hinzufügen. Wenn ich UIImageView programmgesteuert erstellte und zu UIPickerView hinzugefügt wurde, wird ein Fehler angezeigt, der besagt, dass UIImage nicht zu UIPickerView hinzugefügt werden kann.wie uiimage uipickerview programmgesteuert hinzufügen swift 3

Wie kann ich dieses Problem lösen. Vielen Dank im Voraus

+0

Können Sie bitte Ihren Code hinzufügen? – Sneha

+0

Versuchen Sie diese Antwort - http://stackoverflow.com/a/27769541/6602495 – Sneha

+0

Mögliche Duplikate von [Wie kann ich Bilder in UI PickerView Component in Swift angezeigt werden?] (Http://stackoverflow.com/questions/27769246/how-can-ich-bekomme-Bilder-in-ui-Pickerview-Komponente-in-Swift zu erscheinen – Sneha

Antwort

2
func pickerView(pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusingView view: UIView!) -> UIView { 

    var myView = UIView(frame: CGRectMake(0, 0, pickerView.bounds.width, 60)) 

    var ImageView = UIImageView(frame: CGRectMake(0, 0, pickerView.bounds.width, 50)) 

    var row = String() 
    switch row { 
    case 0: 
     row = “animal1” 
     ImageView.image = UIImage(named:"animal1.jpg") 
    case 1: 
     row = “animal2” 
     ImageView.image = UIImage(named:"animal2.jpg") 
    case 2: 
     default: 
     rowString = "Error: too many rows" 
     ImageView.image = nil 
    } 
    myView.addSubview(ImageView) 

    return myView 
} 
1

In Swift 3, versuchen Sie den folgenden Code ein:

func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView { 
    let myView = UIView(frame: CGRect(x: 0, y: 0, width: pickerView.bounds.width - 30, height: 60)) 
    let myImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 50, height: 50)) 
    var rowString = String() 
    switch row { 
    case 0: 
     rowString = "Washington" 
     myImageView.image = UIImage(named:"washington.jpg") 
    case 1: 
     rowString = "Beijing" 
     myImageView.image = UIImage(named:"beijing.jpg") 
    case 2: break 
    default: 
     rowString = "Error: too many rows" 
     myImageView.image = nil 
    } 
    let myLabel = UILabel(frame: CGRect(x: 60, y: 0, width: pickerView.bounds.width - 90, height: 60)) 
    myLabel.text = rowString 

    myView.addSubview(myLabel) 
    myView.addSubview(myImageView) 
    return myView 
} 
Verwandte Themen