BESUP
  • Home
  • product
  • content
  • Contact

UITableView(テーブルビュー)​

【テーブルビューをコードで作る】
Storyboardを使わずに、コードでテーブルビュー を作成します。

​import UIKit

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    //セクションに表示する
    let Sections: NSArray = ["セクション1","セクション2"]
    //セルに格納する
    let TODO1: NSArray = ["やること1","やること2"]    
    //セルに格納する
    let TODO2: NSArray = ["やらないこと1","やらないこと2"]
    
​
    
​override func viewDidLoad() { 
        
super.viewDidLoad()


​        let tableView: UITableView = UITableView(frame: CGRect(x: 0, y: 0, width: screenW, height: screenH))

        //テーブルビューセル名を登録する
        tableView.register(UITableViewCell.self, forCellReuseIdentifier: "todoCell")

        //delegateの設定
        tableView.delegate = self
​

        //dataSourceの設定
        tableView.dataSource = self
                
        //画面にテーブルビューを追加
        self.view.addSubview(tableView)
    }


    //Section数を決める
    func numberOfSections(in tableView: UITableView) -> Int {
        
        return Sections.count
    }
    
    //Sectionの高さを決める
    func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {

        return 60        
    }
    
    //Sectionのタイトルを決める
    func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {

        return Sections[section] as? String
    }

    //Sectionの背景とテキストの色を変更する
    func tableView(_ tableView: UITableView, willDisplayHeaderView view: UIView, forSection section: Int) {

        //背景色を変更する
        view.tintColor = UIColor(red: CGFloat(redColor), green: CGFloat(greenColor), blue: CGFloat(blueColor), alpha: 1.0)

        //テキスト色を変更する
        let header = view as! UITableViewHeaderFooterView
        header.textLabel?.textColor = .white
        h
eader.layer.masksToBounds = true
        header.layer.borderColor = UIColor.gray.cgColor
       
header.layer.borderWidth = 0.2
        
    }
    
    
    //セルの高さを返すメソッド
    func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {

        return 50
    }

​    //セルの数を設定する
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        
        switch section {
            case 0:
                
                return TODO1.count

            case 1:

                return TODO2.count
            
            default:

                return 0
         }
    }
    
    
    //セルに値を設定する
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        
        let todocell = UITableViewCell(style: .subtitle, reuseIdentifier: "todocell")

        switch indexPath.section {
            case 0:

                todocell.textLabel!.text = ToDohome[indexPath.row]

            case 1:
            
                todocell.textLabel!.text = ToDoplay[indexPath.row]

            default:
            
                return todocell
        }

        return todocell
    }

​    //セルがタップされた時の処理
    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

        switch indexPath.section {
                
            case 0:

                print("セクション1_セルタップ")

            case 1:

                print("セクション2_セルタップ")

​            default:
                
                return                 
            }
    }
}
コンテンツ一覧へ

Home

プライバシーポリシー

お問い合わせ

Copyright © 2020 BESUP
  • Home
  • product
  • content
  • Contact