Do it! 複数の構成部品のサーフェスビューを作成するには


複数のエレメントを使用してpecur viewを作成する場合、カラム値が2に指定されていることが新たに分かったが、各エレメントは配列のように0、1、2に入る概念に欠けており、インターネットの助けを得た.構成部品が0,1に設定されている場合、構成部品が0の場合、0番目のビットで行われるすべてのテキストを入力するときに、構成部品のみが使用され、既存のIDを最初の構成部品と他の構成部品に追加できます.
また,途中でテキストタグをタッチしようとしたが,didselectrowを修正することでその値を選択する際に操作を行うため,後で修正して選択した動作を修正した後の反応が必要であると考える.
import UIKit
class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDataSource {
let MAX_ARRAY_NUM = 10
let PICKER_VIEW_COLUM = 2
let PICKER_VIEW_HEIGHT:CGFloat = 80
var imageArray = UIImage?
var imageFileName = [ "1.jpeg", "2.jpeg", "3.jpeg", "4.jpeg", "5.jpeg", "6.jpeg", "7.jpeg", "8.jpeg", "9.jpeg", "10.jpeg"]
@IBOutlet var pickerImage: UIPickerView!
@IBOutlet var lblImageFileName: UILabel!
@IBOutlet var imageView: UIImageView!

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
    
    for i in 0 ..< MAX_ARRAY_NUM {
        let image = UIImage(named: imageFileName[i])
        imageArray.append(image)
    }
    
    lblImageFileName.text = imageFileName[0]
    imageView.image = imageArray[0]
    
}

//returns the number of 'colums' to display
func numberOfComponents(in pickerView: UIPickerView) -> Int {
    return PICKER_VIEW_COLUM
    
}

func pickerView(_ pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat {
    return PICKER_VIEW_HEIGHT
}
    
//returns the # of rows in each componet
func pickerView(_ pickerview: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
    return imageFileName.count
}
// func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
// return imageFileName[row]
// }
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
    let imageView = UIImageView(image: imageArray[row])
    imageView.frame = CGRect(x: 0, y: 0, width: 100, height: 150)
    
    return imageView
}

func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
// lblImageFileName.text = imageFileName[row]
// imageView.image = imageArray[row]
if (component==0) {
lblImageFileName.text = imageFileName[row]
}
else {
imageView.image = imageArray[row]
}
}
    
}