2012-02-26 9 views
3

私はiPadアプリにAQGridViewを実装しようとしています。私の下のイメージを見てください - 強い色をおかけして申し訳ありませんが、私はそれがあなたの問題を理解するのに役立つと思います。AQGridView:UIGridViewCellマージンを調整する方法

各セル(青色のボックス)には左右に余白(黄色)、つまり8ピクセルがあります。つまり、最初の黄色の色は8px、2番目の16px、3番目の16px、最後の8pxの幅です。それは状況によっては問題ないかもしれませんが、私は黄色の列の幅を同じにしたいと思います。私の例では、列の合計幅は48(8 + 16 + 16 + 8)なので、代わりに各列の幅を12(48/4)にしたいと思います。 AQGridViewを変更するにはどうすればよいですか?

私はフレームにバウンスAQGridViewを変更しようとしたが、それは何もしませんでした。

AQGridView

答えて

6

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つのアイテムが広がってしまいました。&少し疎そうです。

+1

あなたの完全な答えをありがとう。 'leftContentInset'と' rightContentInset'プロパティを使用することで、固定マージンスペースを左右に確保するという私の問題を解決しました。 GridViewなどの境界を変更するなど、もっと一般的な解決策であると思ったので、私がこの質問で言及しなかったことは、同じやり方でトップとボトムを行う方法でした。そのための解決策はありますか? – dhrm

+1

AQGridViewを親ビューで少し入れてくださいo) また、グリッドビュー自体にUIEdgeInsetsプロパティがあると思いますが、上と下のインセットを上のように割り当てることができます。 –

0

IはportraitGridCellSizeForGridView方法を使用して、私はgridView:cellForItemAtIndex:方式のセルを初期化するために使用されるものに比べてわずかに大きいCGRectを返すことで、水平及び垂直方向の間隔についての制御を得ることができました。

こちらがお役に立てば幸いです。

関連する問題