一标签的间隙不相等
UILabel *l = [[UILabel alloc] init];
l.text = @"fdsffdadafdsaad";//必须先赋值在计算
//根据指定大小,返回最佳大小。不会修改控件的大小
CGSize size = [l sizeThatFits:CGSizeMake(MAXFLOAT, MAXFLOAT)];
//会调用sizeThatFits:根据内容计算控件大小,然后修改控件大小
[l sizeToFit];
通过UICollectionView计算每个Item的大小,自动布局
二、间隙相等
这里写代/**
* 根据文字计算宽度和高度
*
* @param attributes 文字属性
* @param size 文字大最大范围
*
* @return 计算文字的大小
*/
- (CGSize)sizeWithAttributes:(NSDictionary *)attributes maxSize:(CGSize)maxSize
{
return [self boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil].size;
}码片
//根据文字计算按钮的宽度
CGFloat buttonWidth = [items[i] sizeWithAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:17]} maxSize:CGSizeMake(MAXFLOAT, kWaterPullButtonHeight)].width + 2*kWaterPullButtonTitleInsertSpace;
//大于屏幕的宽
if (widthSum + buttonWidth + kButtonItemSpace > self.frame.size.width)
{
//换行
widthSum = kButtonItemSpace;
heightSum += kWaterPullButtonHeight + kButtonItemSpace;
}
//设置坐标
btn.frame = CGRectMake(widthSum, heightSum, buttonWidth, kWaterPullButtonHeight);
//计算宽度总和
widthSum += buttonWidth + kButtonItemSpace;
}