最近要做从后台拿到数据然后根据数据创建按钮,按钮标题是数据内容
但是问题是数据的内容不一定,因此按钮的大小不能固定
所以才要做根据内容自适应UIButton的大小
不难哦,下面是代码,直接看就能懂的!
NSString *str = @"这是按钮的标题";
UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
btn.titleLabel.font = [UIFont systemFontOfSize:13.0];
//对按钮的外形做了设定,不喜可删~
btn.layer.masksToBounds = YES;
btn.layer.borderWidth = 1;
btn.layer.borderColor = [[UIColor blackColor] CGColor];
btn.layer.cornerRadius = 3;
[btn setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
[btn setTitle:str forState:UIControlStateNormal];
//重要的是下面这部分哦!
CGSize titleSize = [str sizeWithAttributes:@{NSFontAttributeName: [UIFont fontWithName:btn.titleLabel.font.fontName size:btn.titleLabel.font.pointSize]}];
titleSize.height = 20;
titleSize.width += 20;
btn.frame = CGRectMake(100, 100, titleSize.width, titleSize.height);
[view addSubview:btn];
OK,就这些了,当然,这个东西也可以用来做自适应的UILabel