1.根据字符串内容计算宽高
- (CGFloat)strRowWidth:(NSString *)string { //宽度
NSDictionary *dic = @{NSFontAttributeName:[UIFont systemFontOfSize:15]};
CGRect rect = [string boundingRectWithSize:CGSizeMake(0, 44) options:NSStringDrawingUsesLineFragmentOrigin |
NSStringDrawingUsesFontLeading attributes:dic context:nil];
return rect.size.width;
}
- (CGFloat)strRowHeight:(NSString *)string fontSize:(NSInteger)fontSize{//高度
NSDictionary *dic = @{NSFontAttributeName:[UIFont systemFontOfSize:fontSize]};
CGRect rect = [string boundingRectWithSize:CGSizeMake(self.view.width - 44, 0)options:NSStringDrawingUsesLineFragmentOrigin |
NSStringDrawingUsesFontLeading attributes:dic context:nil];
return rect.size.height;
}
2.UIButton imageView 和 titleLabel 通过偏移量交互位置//设置按钮 图片和文字的偏移量
-(void)setBtnImageOffsetX:(NSString*)value andBtn:(UIButton*)button{
// button标题的偏移量
button.titleEdgeInsets = UIEdgeInsetsMake(0, -button.imageView.bounds.size.width, 0, button.imageView.bounds.size.width);
// button图片的偏移量
CGFloat strRowWidth = [self strRowWidth:value];
button.imageEdgeInsets = UIEdgeInsetsMake(0, strRowWidth, 0,-strRowWidth-button.titleLabel.bounds.size.width/2);
[button setTitle:value forState:UIControlStateNormal];
}
//指定字体号,计算内容对于的宽度
- (CGFloat)strRowWidth:(NSString *)string {
NSDictionary *dic = @{NSFontAttributeName:[UIFont systemFontOfSize:sizelevel_5]};
CGRect rect = [string boundingRectWithSize:CGSizeMake(0, 30) options:NSStringDrawingUsesLineFragmentOrigin |
NSStringDrawingUsesFontLeading attributes:dic context:nil];
return rect.size.width;
}