2017-06-06 14 views
0

私は、ストーリーボードのデフォルトのテーブルビューコントローラー内のテーブルビューに最大幅を設定しようとしています。私はちょうど< =幅の制約を何らかの理由で設定することができません、それはxcodeでグレー表示されています。テーブルビュー最大幅の制約

私は自分のビュー内にカスタムテーブルビューを作成するだけですが、何らかの作業をせずにスクロールしても機能しないような設定をしています。

ipadのバージョンがフルスクリーンでないように、画像を含むスクロールするフィードの幅を制限しようとしています。ちょうど最大700と何か、どのようにそれを行うにはどのようなアイデアのように言う?

標準Xcodeのテーブルビューコントローラ enter image description here

カスタム・テーブル・ビュービューコントローラ enter image description here

で働いていたこの種の、それが所定の位置にジャンプし、側面に黒いバーを示しています。

override func viewDidAppear(_ animated: Bool) { 
    let bounds = UIScreen.main.bounds 
    if bounds.width > 414 { 
     tableView.frame.size.width = CGFloat(600) 
     tableView.center.x = bounds.size.width/2 
    } 
} 

答えて

1

UITableViewControllerのUITableViewのフレームを変更することはできませんこれはコントローラのルートビューであるためです。 UITableViewが全幅を占めないようにするには、UIViewControllerを作成してそれにUITableViewを追加する必要があります。あなたがそうするなら、UIViewControllerはルートである独自のUIViewを持ちます。

iPadの全画面を700ワイドで占有しないようにアプリを設定しようとしているとします。残念ながら、アプリのメインウィンドウは常にディスプレイ全体を占有するので、透過的なルートビューを持っていてもメインウィンドウがブロックされるため、メインのiOSインターフェイスは表示されません(私は黒になります)。

+0

お返事ありがとうございます。それは理にかなっていますが、私はそれをいくつか目標にできるようです。 tableView.frame.size.width = CGFloat(500)は、何とかその中心に置くことができれば、それを制限しています。私は、テーブルのサイズを小さくしたいだけで、残りの部分はフルサイズにすることができます。 – user3712837

+0

その場合は、UITableViewControllerで提供されているものがそのビューコントローラに割り当てられた領域全体を占有しなければならないため、独自のUITableViewを手動で追加する必要があります。実際には2つのオプションがあります。1)UITableViewをUIViewControllerに追加します(UITableViewControllerを使用しないでください)。2)UITableViewControllerを別の標準UIViewControllerに置き換え、UITableViewControllerを子ビューコントローラとして追加します。 –

+0

私はアドバイスのおかげで、オプション1と再加工します。私はそれを拘束して中心に置いたが、あなたが言ったように、黒い棒が横になっていて、幅のシフトが見える。 – user3712837

0

私はあなたが特別なコントローラとストーリーボードを使用してセットに幅を設定することができる場合、私は間違っている可能性がわかりません。しかし、tableView.widthAnchor.constraint(equalToConstant: 200).isActive = trueを実行して任意の定数を選択し、view.frame.widthの条件付きロジックを使用して特定の状況の定数値を変更することができます。

+0

返信いただきありがとうございます。私はそれを働かせることができませんでしたが、私は正しい方法でそれを再構築しています。 – user3712837