关于网格视图的建议
答
我是通过UITableView完成的。我做了一个自定义的UITableViewCell,每个单元格包含4个按钮,用于4列,并调整每个单元格的高度,每页4行。
答
我会使一个GridView对象从UIView降序。这将有numberOfColumns财产和物品属性:
@class GridView : UIView {
NSUInteger numberOfColumns;
NSArray *items;
}
@property (nonatomic, assign) NSUInteger numberOfColumns;
@property (nonatomic, copy) NSArray *items;
@end
项阵列将包含你想你的网格视图中显示的UIViews。
然后,每次设置numberOfColumns属性或items属性时,也可以调用[self setNeedsLayout];在他们的二传手,即在项目属性你删除旧的,添加新的和告知框架需要重新布局
- (void)setItems:(NSArray *)value {
if (value != items) {
for (UIView *item in items)
[item removeFromSuperview];
[items release];
items = [value copy];
for (UIView *item in items)
[self addsubview:item];
[self setNeedsLayout];
}
}
你layoutSubviews方法将通过项目阵列迭代,他们在正确的位置列数,即像
- (void)layoutSubviews {
[super layoutSubviews];
CGFloat width = [slef frame].size.width/numberOfColumns;
CGFloat height = width;
CGFloat xoffset = 0;
CGFloat yoffset = 0;
for (UIBView *item in items) {
[item setFrame:CGRectMake(xoffset, yoffset, width, height)];
xoffset += width;
if (xoffset >= [self frame].size.width) {
xoffset = 0;
yoffset += height;
}
}
}
我没有测试的代码,但它应该打好项目出一个方格,每个项目是方形的。
希望这是一个很好的起点。