swift 4 pickerview с изображениями - PullRequest
0 голосов
/ 01 декабря 2018

Я пытаюсь заставить изображения отображаться в окне выбора вместо текста.Я вижу ?и нет изображений.Я знаю, что изображения правильные, поскольку я использую их в другом виде.

Я пытался следить за некоторыми другими сообщениями о переполнении стека, но безрезультатно.как этот: Как я могу заставить изображения появляться в UI PickerView Component в Swift?

enter image description here

код:

import UIKit

class ShuffleViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {

@IBOutlet weak var label: UILabel!

@IBOutlet weak var shufflePicker: UIPickerView!
var pickerData: [String] = [String]()

let images = [UIImage(named:"Acceptance"),
              UIImage(named: "loveimage"),
              UIImage(named: "gratimage"),
              UIImage(named: "successsmall"),
              UIImage(named: "pos"),
              UIImage(named: "rel"),
              UIImage(named: "weal"),
              UIImage(named: "heal2"),
              UIImage(named: "confiden")]

override func viewDidLoad() {
    super.viewDidLoad()

    shufflePicker.delegate = self
    shufflePicker.dataSource = self

}

func numberOfComponents(in shufflePicker: UIPickerView) -> Int {
    return 1
}


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

}


func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return 6
}


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

return images[row]
}

Я не уверен, что делать, так как я довольно плохо знаком с Xcode и swift

1 Ответ

0 голосов
/ 01 декабря 2018

Просто вы можете использовать этот метод

func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {


        let myImageView = UIImageView(frame: CGRect(x: 0, y: 0, width: 220, height: 61))


        myImageView.image = pickerDataSource[row]


        return myImageView

    }
...