UIPickerView, каждый компонент содержит UIButton - PullRequest
0 голосов
/ 15 марта 2019

Я пытаюсь создать средство выбора кнопок, т. Е. Каждый компонент содержит кнопку.Я ожидал, что смогу добавить кнопку в метод делегата viewForRow так же, как я могу сделать с меткой.Когда я это делаю, кнопка отображается правильно, но она не активна.Что я делаю неправильно?Вот мой код:

import UIKit

class ViewController: UIViewController,UIPickerViewDelegate,UIPickerViewDataSource {

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

func numberOfComponents(in pickerView: UIPickerView) -> Int {

    return 1

}

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

    return pickerData.count
}


    override func viewDidLoad() {
    super.viewDidLoad()
    self.pickerView.delegate = self
    self.pickerView.dataSource = self
    pickerData = ["א","ב","ג","ד","ה"]

    // Do any additional setup after loading the view, typically from a nib.
}


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


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

let button:UIButton = UIButton(frame: CGRect(x: 100, y: 400, width: 100, height: 50))
button.backgroundColor = .black
button.setTitle(pickerData[row], for: .normal)
button.addTarget(self,    action:#selector(self.buttonPressed), for: .touchUpInside)
self.pickerView.addSubview(button)
return button


}

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

print ("Selected \(pickerData[row])")

}

@objc func buttonPressed(sender:UIButton) {

print ("Button pressed!")


}


}
...