iOS boundingRectWithSize使用
2015-11-25 14:17
951 查看
方法原型:
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(nullable
NSDictionary<NSString *,
id> *)attributes context:(nullable
NSStringDrawingContext *)context
NS_AVAILABLE(10_11, 7_0);
#import "mylabel.h"
@implementation mylabel
- (void)drawRect:(CGRect)rect {
[super drawRect:rect];
/*在label上画一条线
1.获取到上下文CGContextRef
2.设置画线的起点位置
3.画线,画到另一个点的位置
4.渲染到屏幕上面
*/
CGContextRef context=UIGraphicsGetCurrentContext();
CGContextMoveToPoint(context, 0, rect.size.height/2);
CGContextAddLineToPoint(context, rect.size.width, rect.size.height/2);
CGContextStrokePath(context);
}
mylabel *label=[[mylabel
alloc]initWithFrame:CGRectZero];
NSString *s=@"红红火火测试测试";
label.text=s;
[label setNumberOfLines:0];
UIFont *font=[UIFont
fontWithName:@"Arial"
size:20];
label.font=font;
CGSize size=CGSizeMake(MAXFLOAT, 0);
NSDictionary *attribute = @{NSFontAttributeName: font};
//NSStringDrawingTruncatesLastVisibleLine
//如果文本内容超出指定的矩形限制,文本将被截去并在最后一个字符后加上省略号
//NSStringDrawingUsesFontLeading
//计算行高时使用行间距。(译者注:字体大小+行间距=行高)
//NSStringDrawingUsesLineFragmentOrigin
//绘制文本时使用 line fragement origin
而不是 baseline origin
CGSize labelsize=[s
boundingRectWithSize:size options:NSStringDrawingTruncatesLastVisibleLine |
NSStringDrawingUsesLineFragmentOrigin |
NSStringDrawingUsesFontLeading
attributes:attribute context:nil].size;
[label setFrame:CGRectMake(100, 200, labelsize.width, labelsize.height)];
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(nullable
NSDictionary<NSString *,
id> *)attributes context:(nullable
NSStringDrawingContext *)context
NS_AVAILABLE(10_11, 7_0);
#import "mylabel.h"
@implementation mylabel
- (void)drawRect:(CGRect)rect {
[super drawRect:rect];
/*在label上画一条线
1.获取到上下文CGContextRef
2.设置画线的起点位置
3.画线,画到另一个点的位置
4.渲染到屏幕上面
*/
CGContextRef context=UIGraphicsGetCurrentContext();
CGContextMoveToPoint(context, 0, rect.size.height/2);
CGContextAddLineToPoint(context, rect.size.width, rect.size.height/2);
CGContextStrokePath(context);
}
mylabel *label=[[mylabel
alloc]initWithFrame:CGRectZero];
NSString *s=@"红红火火测试测试";
label.text=s;
[label setNumberOfLines:0];
UIFont *font=[UIFont
fontWithName:@"Arial"
size:20];
label.font=font;
CGSize size=CGSizeMake(MAXFLOAT, 0);
NSDictionary *attribute = @{NSFontAttributeName: font};
//NSStringDrawingTruncatesLastVisibleLine
//如果文本内容超出指定的矩形限制,文本将被截去并在最后一个字符后加上省略号
//NSStringDrawingUsesFontLeading
//计算行高时使用行间距。(译者注:字体大小+行间距=行高)
//NSStringDrawingUsesLineFragmentOrigin
//绘制文本时使用 line fragement origin
而不是 baseline origin
CGSize labelsize=[s
boundingRectWithSize:size options:NSStringDrawingTruncatesLastVisibleLine |
NSStringDrawingUsesLineFragmentOrigin |
NSStringDrawingUsesFontLeading
attributes:attribute context:nil].size;
[label setFrame:CGRectMake(100, 200, labelsize.width, labelsize.height)];
相关文章推荐
- iOS 项目开发使用方法
- iOS开发-Protocol协议及委托代理(Delegate)传值
- IOS中的协议与代理
- iOS高级开发——CollectionView的cell中按钮的点击实现
- 苹果开发者相关
- iOS 屏幕旋转控制(iOS 9.1适用)
- @(),@[],@{}
- iOS学习之frame和bounds
- ios初体验,终端命令
- iOS时间戳与日期互转
- iOS导航标题不居中显示问题
- iOS 计算代码块执行时间
- ios中tabbar得title和navigationbar的title如何修改
- iOS framework 合并真机和模拟器run Scripte
- iOS依赖注入
- iOS开发中可以节省50%编译等待时间的2个措施
- IOS 关于Text Field设置键盘
- IOS多线程的小总结
- IOS中线程的通信
- iOS核心动画笔记