Я создал XIB-файл для просмотра в режиме выбора, и теперь при касании я добавляю представление в режиме выбора для суперпредставления. Он добавлен успешно, но я не могу прокрутить. Я также добавил две кнопки для отмены и готово, но никаких действий для этих кнопок не обнаружено. Пожалуйста, дайте мне знать, в чем проблема
Вот код для добавления вида uipicker.
@objc func didRecognizeTapGesture(_ gesture: UITapGestureRecognizer) {
let frame:CGRect = CGRect(x: 0, y: self.view.frame.height + 200, width: self.view.frame.width, height: 200)
self.itemPicker = ItemPicker.instanceFromNib(with: frame) as? ItemPicker
self.itemPicker?.configureView(frame: frame)
self.view.addSubview(self.itemPicker!)
self.itemPicker?.itemPickerDelegate = self
showView()
}
func showView() {
UIView.animate(withDuration: 0.2) {
self.itemPicker?.frame = CGRect(x: 0, y: self.view.frame.height - 200, width: self.view.frame.width, height: 200)
}
}
func hideView() {
UIView.animate(withDuration: 0.2) {
self.itemPicker?.frame = CGRect(x: 0, y: self.view.frame.height, width: self.view.frame.width, height: 200)
}
}
Код для представления выбора класса
protocol ItemPickerDelegate {
func pickerCancelled()
func pickerDone()
func itemPicked(with item:String)
}
class ItemPicker: UIPickerView {
/// IBOutlets
@IBOutlet weak var pickerView: UIPickerView!
var itemPickerDelegate:ItemPickerDelegate!
var arrItems:[String] = ["Item1","Item2","Item3","Item5","Item6"]
class func instanceFromNib(with frame:CGRect) -> UIView {
let view = Bundle.main.loadNibNamed(Titles.XIB.itemPicker, owner: self, options: nil)! [0] as! UIView
return view
}
func configureView(frame:CGRect) {
self.frame = frame
self.pickerView.delegate = self
self.pickerView.dataSource = self
}
//MARK:IBActions
@IBAction func actionCancel(_ sender: Any) {
DILog.print(items: "actionCancel")
self.itemPickerDelegate.pickerCancelled()
}
@IBAction func actionDone(_ sender: Any) {
DILog.print(items: "actionDone")
self.itemPickerDelegate.pickerDone()
}
}
extension ItemPicker:UIPickerViewDelegate {
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
return arrItems[row]
}
}
extension ItemPicker:UIPickerViewDataSource {
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
return arrItems.count
}
}
Пожалуйста, помогите мне с этой проблемой.