AutoLayoutの使用心得(3)-cellをカスタマイズし、AutoLayoutを使用

3744 ワード

このシリーズの文書コード倉庫はhttps://github.com/johnlui/AutoLayout あ、わからないことがあったら、私のオートLayout設定を参考にしてくださいね.ローカルにダウンロードして開けばいいです.
概要
本編では、UItableViewCellをカスタマイズし、AutoLayoutを使用して制約してみます.
カスタムcellベース
前のプロジェクトでは、StoryBoardを使用してページを整理し、StoryBoardは多くのxibの集合と見なすことができるので、2つの情報を得ることができます.
  • このプロジェクトは、プライマリStoryBoardファイルを初期化することによってAPPを表示し、UIViewControllerクラスファイルはStoryBoardファイルのバインドによって初期化され、機能を完了します.
  • 新しいStoryBoardファイルまたは新しいxibファイルを作成してUIを構築し、ページに動的にロードできます.

  • ファイルを作成
    xibファイルとクラスのコードファイルを一度に作成できます.
    新しいCocoa Touch Class:
    次の図と同じように設定します.
    検査結果
    上の図の1、2の2つをそれぞれ選択し、3つがfirstTable View Cellに自動的にバインドされているかどうかを確認します.バインドされていない場合は、選択した要素が2であることを確認してから、手動でバインドすればいいです.
    バインド作業の完了
    下の図のようにIdentifier設定を行うには、ページを切り替えます.
    新しいTable View Controlページ
    新しいTable View Controlページを作成し、前に作成したSwift on iOSのボタンのクリックイベントをバインドします.
    次にfirstTableViewコントローラというUItableViewコントローラクラスを作成し、作成プロセスは前とほぼ一致します.xibを作成しないでください.次に、StoryBoardのTable View Controlを選択し、右側でfirstTable View Controlクラスにバインドします.
    カスタムcellを呼び出す
    firstTable View Controlクラスの有効なコードを変更するには、次の手順に従います.
    swift
    import UIKit class firstTableViewController: UITableViewController { override func viewDidLoad() { super.viewDidLoad() var nib = UINib(nibName: "firstTableViewCell", bundle: nil) self.tableView.registerNib(nib, forCellReuseIdentifier: "firstTableViewCell") } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } // MARK: - Table view data source override func numberOfSectionsInTableView(tableView: UITableView) -> Int { return 1 } override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return 10 } override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("firstTableViewCell", forIndexPath: indexPath) as firstTableViewCell cell.textLabel?.text = indexPath.row.description return cell } }

    viewDidLoad()に追加された2行のコードはxibをロードする操作です.一番下の3つのfuncはそれぞれ定義です.
  • self.tableViewのsection
  • の数
  • 各sectionにはそれぞれいくつのエントリがありますか
  • は各エントリをインスタンス化し、コンテンツ
  • を提供する.
    次のページを入手すると、カスタムcellを呼び出すことに成功しました.
    カスタムcellに要素を追加し、Auto Layout制約を使用
    まずImages.xcassetsに1枚の画像を任意に追加します.
    次に、左側のファイルツリーでfirstTable View Cell.xibを選択し、右側のコンポーネントライブラリからImage Viewをドラッグし、右側で次の図の右側のようにサイズを設定します.
    ImageViewに制約を追加するには、次の手順に従います.
    このImageView(左矢印)を選択し、自動Auto Layout(右矢印)をクリックします.
    ImageViewに画像を設定します.
    右側のコンポーネントライブラリからUIlabelをドラッグし、最も右側に吸着し、垂直に中央に配置し、自動コンストレイントを追加する手順は説明しません.
    firstTableビューセルクラスでxibでドラッグした要素をバインドする
    firstTable.View.xibを選択し、ダブルビューに切り替えてドラッグバインドを直接行います.
    バインド完了!
    拘束cellの高さ
    firstTable View Controlに次の方法を追加します.
    swiftoverride func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
        return 50
    }
    

    カスタムUIlabelにコンテンツを追加
    firstTable View Controlの次の関数を変更します.
    swiftoverride func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("firstTableViewCell", forIndexPath: indexPath) as firstTableViewCell
    
        cell.firstLabel.text = indexPath.row.description
    
        return cell
    }
    

    結果の表示
    4.0インチ:
    4.7インチ:
    以上の結果が得られたら、cellをカスタマイズしてAuto Layoutを使用して成功しておめでとうございます.
    次のステップ:AutoLayoutの使用心得(4)-22行のコードでドラッグ・バウンドを実現
    原文は私の個人のウェブサイトで発表します:AutoLayoutの使用の心得(3)——cellをカスタマイズしてAutoLayoutを使用します