AQGridView 实际上获取容器视图的坐标并从中创建一个严格定义的网格。因此,当您有一个 768 像素宽的网格视图,以及宽度略低于该宽度 1/3 的项目时,它将创建一个刚性网格来放置这些项目。默认情况下,您的AQGridViewCell
视图将在每个网格正方形内居中(尽管您可以调用-setResizesCellWidthToFit:YES
更改它);-gridView:adjustCellFrame:withinGridCellFrame:
您可以通过在您的实施中实施来调整该定位AQGridViewDelegate
。
在您的情况下,每个单元格的左侧和右侧都有 8px 的边距。在外边缘,这是单独看到的,但在成对之间,它看起来加倍到 16 像素(每个单元格为 8 像素)。
那么,您想要的是每个单元格有 6px 的边距,并且网格本身在所有单元格的左右两侧有另外 6px 的边距空间。有一个 API:
@property (nonatomic, assign) CGFloat leftContentInset;
@property (nonatomic, assign) CGFloat rightContentInset;
你应该能够做的是设置myGridView.leftContentInset = 6.0;
和myGridView.rightContentInset = 6.0;
。然后,网格视图将布置内容宽度为 756 像素而不是 768 像素的单元格,这应该为每个单元格周围提供 6 像素的边距。将其与 6px 的左右内容插图相结合,您将在每个单元格和网格视图的外边缘之间有一个干净的 12px 可见边距。
旁注:内容插入属性实际上是为了帮助每行布置一定数量的单元格而创建的。例如,1024 不会被 5 整除,因此它最终可能会导致一些相当小的单元格非常分散,因为布局网格仅包含 4 个宽度的项目。但是,通过添加每个 2px 的左右内容插入,视图将使用 1020 的宽度来计算其布局网格,从而导致每行 5 个单元格。事实上,这正是我们在 Kobo iPad 应用程序中旋转到横向模式时所做的事情;如果没有这种变化,我们的纵向模式每行 4 个项目就会分散开来,看起来有点太稀疏了。