在设置高度的时候IOS6、IOS7的运行时版本、编译时版本兼容。
重写titleRectForContentRect方法
/**
warning: could not load any Objective-C class information. This will significantly reduce the quality of type information available.
self.titleLabel.text 不能使用,它内部会调用 titleRectForContentRect:造成死循环。
采用 self.currentTitle
*/
- (CGRect)titleRectForContentRect:(CGRect)contentRect{
CGFloat titleX = 0;
CGFloat titleY = 0;
CGFloat titleHeight = contentRect.size.height;
CGFloat titleWeight= 0;
UIFont *font = [UIFont systemFontOfSize:15.0];
if (IOS7) {//1.判断运行时的版本
//2.编译环境的判断#define __IPHONE_7_0 70000 --#import <Availability.h>
#ifdef __IPHONE_7_0
//计算按钮宽度
NSDictionary *dict =@{NSFontAttributeName:font};
titleWeight = [self.currentTitle boundingRectWithSize:CGSizeMake(MAXFLOAT, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:dict context:nil].size.width;
#else
titleWeight = [self.currentTitle sizeWithFont:font].width;
#endif
}else{
titleWeight = [self.currentTitle sizeWithFont:font].width;
}
return CGRectMake(titleX, titleY, titleWeight, titleHeight);
}
作者:u011018979 发表于2017/7/3 14:58:22 原文链接
阅读:84 评论:0 查看评论