[Swift] 테이블 머리글을 사용자 정의합니다.이미지의 크기와 높이를 조정합니다.

10826 단어 Swift
나는 반드시 테이블의 헤더를 맞춤 제작할 것이라고 생각한다.화면의 진동과 크기를 조정하다.(사실 스크롤 위치에 따라 높이도 달라질 수 있다고 생각하지만 다음에 할게요.)

ViewController.swift
import UIKit

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    let myItems = ["test1", "test2", "test3"]
    var myTableView: UITableView!

    override func viewDidLoad() {
        super.viewDidLoad()

        let barHeight: CGFloat = UIApplication.sharedApplication().statusBarFrame.size.height
        let displayWidth: CGFloat = self.view.frame.width
        let displayHeight: CGFloat = self.view.frame.height
        myTableView = UITableView(frame: CGRect(x: 0, y: barHeight, width: displayWidth, height: displayHeight - barHeight))
        myTableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "MyCell")
        myTableView.dataSource = self
        myTableView.delegate = self

        // ⦿ ここでヘッダーの高さを指定
        myTableView.sectionHeaderHeight = 300

        self.view.addSubview(myTableView)
    }

    /*
    ⦿ ヘッダーの設定
    */
    func tableView(tableView: UITableView, viewForHeaderInSection section: Int) -> UIView? {

        // ⦿ UIViewを返します。
        // ⦿ UIViewの上にUIImageViewを貼り付けます。

        let myView: UIView = UIView()
        myView.backgroundColor = UIColor.greenColor()

        let myImageView = UIImageView(frame: CGRectMake(0, 0, 100, 50))
        myImageView.contentMode = UIViewContentMode.Center
        myImageView.backgroundColor = UIColor.yellowColor()
        myImageView.layer.position = CGPoint(x: self.view.frame.width/2, y: 100.0)
        myImageView.image = UIImage(named: "oil_king.png")

        myView.addSubview(myImageView)
        return myView
    }

    /*
    行数
    */
    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return myItems.count
    }

    /*
    セル作成
    */
    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("MyCell")
        cell!.textLabel?.text = myItems[indexPath.row]
        return cell!
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
}
세션이 여러 개인 경우 머리글 높이를 지정합니다.
myTableView.sectionHeaderHeight = 300
아니오.
func tableView(tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
    return 300
}
이런 거 쓰면 될 것 같아.하나면 아무거나 써도 돼요.

좋은 웹페이지 즐겨찾기