Quantcast
Channel: CSDN博客移动开发推荐文章
Viewing all articles
Browse latest Browse all 5930

自定义按钮的标题宽度、高度

$
0
0

在设置高度的时候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 查看评论

Viewing all articles
Browse latest Browse all 5930

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>