2017-03-11 6 views
0

WWDC 2015からビデオを見ていましたが、プレゼンターが固定されたバーを下に持つテーブルビューを展示しました。それ。ビデオはオンデマンドリソースに関するものなので、バーの実装方法について詳しくは触れていません。しかし、私は本当にそれが実装されている方法に興味を持っています:UITableViewのこの固定されたボトムバーはどのように実装されましたか

ビューのコントローラはUITableViewControllerのサブクラスなので、そのコントローラのルートビューはテーブルビューでなければなりません。私が知る限り、UIビューをテーブルビュー内で修正するためのクリーンな方法はありません。

ナビゲーションコントローラのツールバーのようには見えません。ラベルは中央にあり、進行状況バーはバー全体にあるためです。私はツールバーの中に離散ボタンだけを置くことができると思いますか?おそらくそうではないかもしれませんが、テーブルビューコントローラーのサイズから、実装するコードはあまり書いていないようです。

このボトムバーはどのように実装されているのだろうか?あなたはそれを見ることができますat this moment of the video

(それはここではWWDCのビデオのスクリーンショットを貼り付け、法的かしら?)

答えて

0

:ここではわずか数行でそれを行う方法です。彼は私にiTravelのソースコードを送ってくれたほど親切でした。今、私はそれがストーリーボードにどのように実装されているか知っています。

コントローラでドッキングされたビューを作成する(つまり、通常のUIViewをシーンドックに配置する)、テキストと進行状況バーを配置し、自動レイアウトを使用してレイアウトする必要があります。テーブルビューコントローラに続い

、このメソッドを追加:overallViewがドッキングUIViewの出口である

override func viewWillAppear(_ animated: Bool) { 
    self.navigationController?.setToolbarHidden(false, animated: animated) 

    overallView?.translatesAutoresizingMaskIntoConstraints = false 
    self.navigationController?.toolbar.addSubview(overallView!) 

    self.navigationController?.toolbar.leadingAnchor.constraint(equalTo: (overallView?.leadingAnchor)!).isActive = true 
    self.navigationController?.toolbar.trailingAnchor.constraint(equalTo: (overallView?.trailingAnchor)!).isActive = true 
    self.navigationController?.toolbar.topAnchor.constraint(equalTo: (overallView?.topAnchor)!).isActive = true 
    self.navigationController?.toolbar.bottomAnchor.constraint(equalTo: (overallView?.bottomAnchor)!).isActive = true 

    super.viewWillAppear(animated) 
} 

を。

クレジットはiTravelアプリ(ほとんどの場合、Tony Parker)の作者になります。

3

それはナビゲーションコントローラが提供するツールバーを使用しているように実際には、多くのことを見えます。

ツールバーにカスタムビューを追加し、柔軟なスペース項目を使用して項目を調整することができます。だから私は好奇心に抵抗することができませんでした、と私は助けを求めるトニー・パーカー(スピーカー)に電子メールを送っ

// In your tabble view controller subclass 
override func viewDidLoad() 
{ 
    super.viewDidLoad() 

    // ... 

    let label = UILabel(frame: CGRect(x: 0.0, y: 0.0, width: UIScreen.main.bounds.size.width, height: 44.0)) 
    label.textAlignment = .center 
    label.text = "Hello world!" 
    let toolBarItem = UIBarButtonItem(customView: label) 
    let flexibleSpace = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil) 
    self.setToolbarItems([flexibleSpace, toolBarItem, flexibleSpace], animated: false) 
    self.navigationController?.isToolbarHidden = false 

    let progressView = UIProgressView(progressViewStyle: .bar) 
    progressView.frame = CGRect(x: 0.0, y: 0.0, width: UIScreen.main.bounds.size.width, height: 2.0) 
    progressView.trackTintColor = .lightGray 
    progressView.progress = 0.5 
    self.navigationController?.toolbar.addSubview(progressView) 
} 
+0

ありがとうございました!私はあなたのコードを試しました、そして、それはそのビデオにあるもののように多く見えます。しかし、発表者はそれが[ストーリーボードに繋がれている]と述べています(https://developer.apple.com/videos/play/wwdc2015-214/?time=1346)。ストーリーボードからツールバー内のこれらのビューを構築できると思いますか? – hgl

+0

私はInterface Builderでそれを行うことはできませんが、私は間違っている可能性があります(私は多くのストーリーボードを使用しません) – deadbeef

関連する問題