有时候我们需要多Label做自适应,不是给绝对位置。
系统给我们提供了一个方法
- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(NSLineBreakMode)lineBreakMode
废话不多说上代码:
CGSize Size = [(此处是你的label.text) sizeWithFont:[UIFontsystemFontOfSize:11] //根据需求修改font
constrainedToSize:CGSizeMake(100,11) //这里我只计算了文本宽度
lineBreakMode:NSLineBreakByWordWrapping]; //自动计算
使用自动计算好的Size 赋值label.frame
比如 label.width = Size.width; 重新赋值宽度.
label.left = 320 - Size.width; 计算X值
这样就从新计算了这个label的宽度根据需求 可自行更改
我这里还有一个UIbutton 因为后面label会更改 button 的位置 使之 前移
button.left = label.left - button.frame.size.width; //这样 button 就会随着label的坐标使之左移。反之同理 计算right