这篇写的是for循环创建按钮,对于那些不太会计算坐标的同学会有帮助。不说太多直接上代码。
NSArray *title = [[NSArray alloc]initWithObjects:@"社",@"会",@"文",@"明",@"你",@"我",@"他",nil];
float Start_X = 10.0f; // 第一个按钮的X坐标
float Start_Y = 50.0f; // 第一个按钮的Y坐标
float Width_Space = 10.0f; // 2个按钮之间的横间距
float Height_Space = 10.0f; // 竖间距
// 每个按钮的宽度 记住 一定要把一行中多有按钮的边距都要算上并减掉 不然按钮会跑到屏幕外面去 这个5就是5个间距(左右各一个加中间3个间距) 4就是一行4个
float width = (WIDTH - 5 * Width_Space)/4;
float height = 100.0; // 按钮高度
for (int i = 0; i < title.count; i++) {
UIButton *button = [[UIButton alloc]init];
button.tag = 100 + i;
NSInteger index = i % 4; // 一行4个
NSInteger page = i / 4; // 列数
button.frame = CGRectMake(index * (width + Width_Space) + Start_X, page * (height + Height_Space)+Start_Y,width , height);
// 这个也可以 不过这个就是把上面的给拆分了而已
// button.frame = CGRectMake(index * width + (index + 1) * Width_Space, page * height + (page + 1) * Height_Space + 30, width, height);
// 设置字体大小
button.titleLabel.font = [UIFont boldSystemFontOfSize:14];
// 设置按钮字体颜色 这里给的随即色
[button setTintColor: [UIColor colorWithRed:arc4random()%256/255.0f green:arc4random()%256/255.0f blue:arc4random()%256/255.0f alpha:1]];
// 添加背景色 这里给的随即色
button.backgroundColor = [UIColor colorWithRed:arc4random()%256/255.0f green:arc4random()%256/255.0f blue:arc4random()%256/255.0f alpha:1];
//按钮事件
[button addTarget:self action:@selector(btn:) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:button];
}
-(void)btn:(UIButton *)sender{
NSLog(@"tag = %ld",sender.tag);
}
最后上个效果图
如有问题请留言,看到后会回复。谢谢