2016-08-12 6 views
1

iOSのルーキー。 私はUIImageViewとそれに UITableViewを持つFreeform ViewControllerを持っています。iOS 8:自由形式でUITableviewの高さをプログラムで設定する方法

私がここで直面している問題は、テーブルビューをスクロールしようとしたときです。 フリーフォーム viewcontrollerで撮影した高さのためにアイテムの一部が非表示になっています。

私はUItableviewの高さをプログラムで設定するために、次のコードを試しました 画面のサイズに応じて。

let screenSize: CGRect = UIScreen.mainScreen().bounds 
    tableview.frame = CGRectMake(0,imageview.frame.height, 280, (screenSize.height -imageview.frame.height)) 

上記のコードでは、tableviewのサイズを変更できませんでした。

実行時にUITableviewのサイズを設定できますか、ストーリーボードの を設定できる方法はありますか。私は問題が後にビューの両方のための真のtranslatesAutoresizingMaskIntoConstraintsを=指定した後、カスタムの高さと幅を使用して、私の両方のビューを打ち出し解決

ソリューション

。私は自分のデザインとアプリの要求に従って行った。

+1

autolayoutを使用していますか? –

+0

はい@DharmbirSingh私はAutoLayoutを使用しています – iAviatorJose

答えて

3

のためにあなたの高さを返します新しいフレームは、自動レイアウトと制約によってオーバーリバースされているため、更新されません。

EDIT:あなたはストーリーボードであなたのビューコントローラの[スクロールビューのインセットを調整]を有効にした場合

1-それを無効にし、テストしてご覧ください。

2プログラムでimageViewを作成しますか?またはインターフェイスビルダーから、あなたはそれに制約がありますか?

3-ステータスバーの高さがわかっていて、あなたもそれを補う必要がありますか?

4-ナビゲーションバーを使用しますか?

+0

私はtableViewにフレームを与える前に上記を行いましたが、今私のimageviewはtableviewによって重複されています。 – iAviatorJose

+0

画像や詳細を投稿すると、私は助けてくれると思います。 – DeyaEldeen

+0

上記の画像が表示されます – iAviatorJose

1

UITableViewCell高さの代行機能があります。

ここでは、その特定のセルのindexPathを指定し、自動レイアウトや制約を使用している場合、あなたは新しいフレームを適用する前に

tableview.translatesAutoresizingMaskIntoConstraints = true 

に持って、それ

(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { 
    if(indexPath.section == yourSection && indexPath.row == yourRow) { 
     return 150.0; 
    } 
    // "Else" 
    return someDefaultHeight; 
} 
0

テーブルビューの高さをプログラムで設定しないでください。

ただ一つのこと

テイクトップ、ボトム、大手、末尾の制約とテーブルビューのヘッダーにユーザ画像ビューを追加0

に一定の値を設定を行います。

関連する問題