0

ネストされた UITableViews を持つビューを持つアプリを作成しています。外側の UITableView のセル内の UITableView は、水平にスクロールするように 90 度回転します。メイン UITableView の UITableViewCells は、クラス Horizo​​ntalTableViewCell のものです。

                    UITableView
--------------------------------------------------    
|                |               |               |
|                |               |               | HorizontalTableView
|       >        |       >       |       >       | (contained inside
|                |               |               | UITableView's 
|                |               |               | UITableViewCell)
--------------------------------------------------
|                |               |               |
|                |               |               |
|       >        |       >       |       >       |   |
|                |               |               |  \ /
|                |               |               |   "
--------------------------------------------------
|                |               |               |
|                |               |               |
|       >        |       >       |       >       |
|                |               |               |
|                |               |               |
--------------------------------------------------      

縦向きモードの場合、メソッドで Horizo​​ntalTableView の幅を画面の幅に設定することで、コンテンツを均等に配置しますinitWithFrame:

デバイスが横向きモードに回転すると、3 つのセルが画面全体に収まるようにサイズ変更され、それぞれが同じ量のスペースを占めるように、Horizo​​ntalTableView のセルのセル パディングを増やしたいと思います。

ただし、達成できると思われる最善の方法は、同じ縦幅の Horizo​​ntalTableView ですが、次のビットマスクによって画面の中央に配置されます (Horizo​​ntalTableViewCell の実装ファイルから)。

self.horizontalTableView.autoresizingMask = 
    UIViewAutoresizingFlexibleLeftMargin | 
    UIViewAutoresizingFlexibleRightMargin;

これにより、Horizo​​ntalTableView の両側に大きな余白が生成され、セルが効果的に中央に配置されますが、個々のセルのパディングは変更されません。

これを行う方法についてのアイデアはありますか?

(次のビット マスクが使用されている場合、セルは Horizo​​ntalTableViewCell の「上部を通って」ビューの外に飛び出し、デバイスが回転して縦向きモードに戻っても、再び表示されないことに注意してください)。

self.horizontalTableView.autoresizingMask = UIViewAutoresizingFlexibleWidth; 
4

1 に答える 1

0

私が考えることができる唯一の方法は、横向きモード用に別のビューを作成することです。データをホルダー オブジェクトにスローし、新しいビューをロードしてから、ホルダーからデータをリロードします。

于 2012-06-22T19:44:58.323 に答える