0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

UIPickerView 復習

Posted at

今回の内容

49A6E005-5949-4824-A94F-1C846C098D91_1_201_a.jpeg

コードと簡単解説

UIPickerViewとUILabel作成

import UIKit

class ViewController: UIViewController {

    let pickerViewContents = ["January","February","March","April","May","June","July","August","September","October","November","December"]
    
    let pickerResultLabel = UILabel()
        
    override func viewDidLoad() {
        super.viewDidLoad()
        
        pickerResultLabel.frame = CGRect(x: view.frame.minX, y: view.frame.maxY * 0.3, width: view.frame.width, height: view.frame.size.height / 5)
        pickerResultLabel.textColor = .black
        view.addSubview(pickerResultLabel)
        
        let pickerView = {() -> UIPickerView in
            
            let picker = UIPickerView(frame: CGRect(x: view.frame.minX, y: view.frame.maxY * 0.75, width: view.frame.width, height: self.view.frame.size.height / 7.5))
            pickerResultLabel.textAlignment = .center
            picker.backgroundColor = .lightGray
            
            return picker
        }()
        
        view.addSubview(pickerView)
        
        pickerView.delegate = self
        pickerView.dataSource = self
    }

}

UIPickerViewDelegateとUIPickerViewDataSource

  • func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {} では、選択肢の名前を設定

  • func pickerView(_ pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat {}では、選択肢の高さを設定

  • func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {}では、選択肢が選択された時の処理

  • func numberOfComponents(in pickerView: UIPickerView) -> Int {}では、選択肢の列の数を設定

  • func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {}では、選択肢の数を設定

extension ViewController:UIPickerViewDelegate{
    
    func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
        
        return pickerViewContents[row]
    }
    
    func pickerView(_ pickerView: UIPickerView, rowHeightForComponent component: Int) -> CGFloat {
        
        return 75
    }
    
    func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
        
        pickerResultLabel.text = pickerViewContents[row]
    }
}

extension ViewController:UIPickerViewDataSource{
    func numberOfComponents(in pickerView: UIPickerView) -> Int {
        
        return 1
    }
    
    func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
          
        return pickerViewContents.count
    }

}

終わり

ご指摘、ご質問などありましたら、コメントまでお願い致します。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?