2017-04-05 8 views
1

テーブルビューセルとヘッダービュー(検索バー)を表示するテーブルビューがあります。テーブルビューセルの幅を0.9のデバイス画面サイズのにし、ヘッダービューのサイズを同じにします。ただし、セルとヘッダービューはすべてテーブルビューに含まれているため、これは不可能です。テーブルビューセルとテーブルビューヘッダービューのサイズ変更

レイアウトアンカーの制約を使用すると、すべてがサイズ変更されます(ヘッダービューを含む)。メインビューの0.9であることをテーブルビューの幅を維持しながら、私は、テーブルビューのヘッダは、ビューコントローラの同じ幅を持っていることを確認することができますどのように

self.tableView.topAnchor.constraint(equalTo: self.view.topAnchor).isActive = true 

// here's the 0.9 multiplier 
self.tableView.widthAnchor.constraint(equalTo: self.view.widthAnchor, multiplier: 0.9).isActive = true 
self.tableView.centerXAnchor.constraint(equalTo: self.view.centerXAnchor).isActive = true 
self.tableView.bottomAnchor.constraint(equalTo: self.view.bottomAnchor, constant: 0).isActive = true 

+0

に追加要素の...

すべて(ViewControllerの幅)を設定し、tableViewの 'clipsToBounds'プロパティを' false'に設定します。それがうまくいくかどうかわかりませんが、試してみる価値があります –

+0

あなたのテーブルを画面の幅にするのはなぜ...ヘッダービューを全幅にしてから、セルの幅を0.9にするのはなぜですか? – DonMag

+0

@DonMagありがとう。問題は、セルの幅を0.9にする方法がわからないことです。私はそれを行う方法や方法を見つけていない。 – Cesare

答えて

1

カスタムセルは、その幅を設定するには、テーブルビューのインセットを使用して使用していますContentView、「で始まる」...

だから、あなたは、追加する要素/オブジェクトの束を持っている場合コンテンツビューに...

あなたの最善の策は、おそらく最初

すると...「コンテナビュー」...(それのちょうど私の命名)としてUIView標準を追加することで、制約を設定その "viewを含んでいる"コンテンツビューの幅の0.9になる私が作成しようとするだろうあなたがその「ビューを含む」それに相対を制約されますので、すべての全体の0.9幅内にとどまる...

1

TableViewCellまたはそのcontentViewの制約を調整しようとしないことをお勧めします。ただし、両方のビューを背景色が.clearになるように設定してから、必要な制約を加えてサブビューをcontentViewに追加するだけで済みます。

class CustomCell: UITableViewCell { 

    let smallerView = UIView() 
    override init(frame: CGRect) { 
     super.init(frame) 
     smallerView.translatesAutoresizingMaskIntoConstraints = false 
     contentView.addSubview(smallerView) 
     smallerView.widthAnchor.contraint(equalTo: contentView.widthAnchor, multiplier: 0.9).isActive = true 
     smallerView.heightAnchor.contraint(equalTo: contentView.heightAnchor).isActive = true 
    } 
} 
+0

申し訳ありませんが、私はそれを取得しません。テーブルビューのセルを 'smallerView'に追加する必要がありますか? – Cesare

+1

カスタムtableviewcellを作成し、各セルにsmallViewsを追加する必要があります。私の更新を見る – dmorrow

関連する問題