AQGridViewは、実際にはコンテナビューの座標を取り、そこから、厳密に定義されたグリッドを作成します。したがって、768ピクセル幅のグリッドビューと幅の1/3未満のアイテムがある場合、これらのアイテムを配置するための剛性グリッドが作成されます。デフォルトではAQGridViewCell
ビューは各グリッドの四角内に中央揃えされます(ただし、変更するには-setResizesCellWidthToFit:YES
に電話することができます)。 AQGridViewDelegate
の実装に-gridView:adjustCellFrame:withinGridCellFrame:
を実装することで、その位置を調整できます。
あなたの場合、すべての単一セルの左右に8pxの余白があります。外縁部ではこれは単独で見られますが、ペアの間では16px(各セルから8px)に倍増して表示されます。
あなたが望むのは、各セルが6pxのマージンを持ち、グリッド自体が残りの6pxのマージンスペースを左に持つことです。すべてのセルの右側に&があります。 an API for thisがあります:あなたが行うことができるはず何
@property (nonatomic, assign) CGFloat leftContentInset;
@property (nonatomic, assign) CGFloat rightContentInset;
はmyGridView.leftContentInset = 6.0;
とmyGridView.rightContentInset = 6.0;
に設定されています。グリッドビューでは、768pxではなく756pxのコンテンツ幅のセルがレイアウトされ、各セルの周りに6pxのマージンが与えられます。これを6px左の&のコンテンツインセットと組み合わせると、すべてのセルとの間に、グリッドビューの外側のエッジがきれいに表示されます。
サイドノート:コンテンツインセットプロパティは、実際に行ごとに特定の数のセルをレイアウトするために作成されました。たとえば、1024は5で割ることはないので、レイアウトグリッドには幅が4つのアイテムしか含まれていないため、かなり小さなセルがかなり広がってしまいます。ただし、左側にのコンテンツインセットを2pxずつ追加すると、ビューでは幅1020を使用してレイアウトグリッドが計算され、行あたり5セルになります。これは実際には風景モードに回転したときのKobo iPadアプリでの正確な動作です。その変更がなければ、1行あたりのポートレートモードの4つのアイテムが広がってしまいました。&少し疎そうです。
あなたの完全な答えをありがとう。 'leftContentInset'と' rightContentInset'プロパティを使用することで、固定マージンスペースを左右に確保するという私の問題を解決しました。 GridViewなどの境界を変更するなど、もっと一般的な解決策であると思ったので、私がこの質問で言及しなかったことは、同じやり方でトップとボトムを行う方法でした。そのための解決策はありますか? – dhrm
AQGridViewを親ビューで少し入れてくださいo) また、グリッドビュー自体にUIEdgeInsetsプロパティがあると思いますが、上と下のインセットを上のように割り当てることができます。 –