现在的应用里都有图文内容,当图片多时我们想让他们自动布局比如5张图片一排三张二排两张图片,当图片再多时能顾自动的排到下一行,大概思路是,当前端收到图片数组时,做一个循环布局,计算行数和列数,设定图片大小大概思路这样,这里我把代码贴出来。这里我以布局一个数字键盘为例
inputView =[[UIView alloc] initWithFrame:frame];
inputView.backgroundColor = [UIColor blackColor];
int line = 3;
int column = 3;
int x = 0;
int y = 0;
int whith = self.frame.size.width/column;
int hight = 59;
//下面的循环是关键代码
for (int i = 0; i < 12; i++) {
UIButton *btu = [UIButton buttonWithType:UIButtonTypeCustom];
btu.backgroundColor = [UIColor colorWithRed:235.0/256 green:235.0/256 blue:235.0/256 alpha:1.0f];
btu.titleLabel.font = [UIFont systemFontOfSize:14];
btu.titleLabel.textColor = [UIColor blackColor];
[btu setTitle:self.arr[i] forState:UIControlStateNormal];
btu.tag = 100+i;
x = (i%column)*whith;
y = (i/line)*(hight+1);
if (i%column != 0) {
x+=1*(i%column);
}
if (11 == i) {
[btu addTarget:self action:@selector(deleAction:) forControlEvents:UIControlEventTouchUpInside];
}else {
[btu addTarget:self action:@selector(setAction:) forControlEvents:UIControlEventTouchUpInside];
}
if (9 == i && accesstype == ACCESSVIEWTYPEWITHINPUTPW) {
[btu setTitle:@"字母" forState:UIControlStateNormal];
}
btu.frame = CGRectMake(x, y+1, whith, hight);
[inputView addSubview:btu];
tv.inputView = inputView;
}
希望能帮助你们