0

私たちはiPhoneアプリを持っており、現在ユニバーサルアプリとして開発しています。テーブルビューを含む同じビューを使用したいと考えています。左側では、動的に拡張できるナビゲーション用の tableview を使用しています。右側では、iPhone と基本的に同じである viewController を使用しています。

デザインと UX のために、右側のビュー全体を埋めるためにそれらを引き延ばしたくはありません。左側と右側のパディングで中央に配置したいと考えています。左側のメニューが展開されている場合、パディングを減らす必要があるため、このパディングは動的にする必要があります。

セルの setframe メソッドを上書きすることで達成しようとしましたが、少しぎこちなく、前に誰か試してみましたか?

ティア

4

1 に答える 1

0

UIView私のトップレベルの中にUIViewControllerパディングビューを作成します。の幅いっぱいにsuperview広げ、必要に応じて拡大/縮小し、左右に固定します。

パディング ビュー内で、コンテンツ ビューを作成します。ビューの幅を広げたい場合は、水平方向にサイズを変更したり、左右に固定したりしないでください。パディングビューの中央に貼り付けます。

ここで、パディング ビューを右に移動し、フレームの origin.x と size.width を変更して縮小すると、内側のコンテンツ ビューは固定サイズのままで、パディング ビューの中央に配置されます。これにより、画面の左側または右側のメニューにスライドすることもできます.

コメントに基づいて編集: 内部コンテンツ ビューが表であるが、右端にスクロール バーが必要な場合。

frame.size.height内側のコンテンツ ビュー (を変更して、UITableViewテーブル ビューの値に一致させますcontentSize.height。これにより、テーブルがコンテンツと同じ大きさになります。垂直スクロールをオフにします。(注: 変更するたびに、テーブル ビューの高さを更新する必要があります。中身の高さ。)

パディングをシンプルUIViewにする代わりに、UIScrollView.

これで、テーブル ビューは静的な高さになり、スクロールもスクロール バーもありません。パディング ビューはスクロールを制御するようになりました。これは、パディング ビューの右端にスクロール バーを配置するだけでなく、パディングに触れることでスクロールできることを意味します。

于 2013-01-08T14:04:15.330 に答える