1

UITableviewを作成し、変換-M_PI_2を適用して、テーブルビューが水平方向にスクロールするようにします。

水平モードで正しく表示するために、各セルもM_PI_2によって回転されます。データで初期化すると、セルは完璧になります。すべてが正常に動作します。

次に、テーブルビューの高さを元の75%にサイズ変更し、25%下に移動すると、セルの上半分が非表示になります(テーブルビューにclipstoboundsを設定しました)。関数を使用してuitableviewのフレームのサイズを変更しますsetFrame:

これは後も変わりません[tableview reload]

親(テーブルビュー)が移動されてサイズが変更されるので、子(セル)はそれに対して移動されるべきではありませんか?

そうでない場合、次のことを行う正しい方法は何ですか。

  1. uitableviewにデータを入力し、水平スクロール用に変換します
  2. ユーザー入力に基づいてフレームのサイズを変更します
  3. セルは、uitableviewの新しいフレームに対しても整列する必要があります。
4

1 に答える 1

1

CALayerこのような変換を適用すると、レイヤーが回転するため、ジオメトリとUIViewジオメトリの違いを理解する必要があります。

Apples Layer Geometryのドキュメントではこれについて詳しく説明していますが、基本的には、ビューレイヤーのanchorPoint値を調整する必要があると思います。

self.viewToRotate.layer.anchorPoint = CGPointMake(0.0f, 0.0f); //not sure of the actual value here
于 2012-08-28T13:56:59.780 に答える