您的位置:首页 > 移动开发 > IOS开发

iOS 编程 计算字符串文字宽度

2015-07-07 11:20 489 查看
//

// ViewController.m

// tableview复习

//

// Created by tianshangrenjian on 15/7/7.

// Copyright © 2015年 tianshangrenjian. All rights reserved.

//

#import "ViewController.h"

@interface
ViewController ()

@property (weak,
nonatomic) IBOutlet
UILabel *lbInfo;

@property (weak,
nonatomic) IBOutlet
UIView *viewInfo;

@end

@implementation ViewController

- (void)viewDidLoad {

[super
viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

}
- (void)touchesBegan:(nonnull
NSSet<UITouch *> *)touches withEvent:(nullable
UIEvent *)event
{

NSString *str=@"
开源界总是有许多有趣的东东,这三个合起来就是一个完整的XMPP IM
实现。包括服务器端——Openfire,,XMPP
传输协议的实现——Smack(记住,XMPP是一个协议,协议是需要实现的,Smack起到的就是这样的一个作用)。三者都是基于Java
语言的实现。";

CGSize size=CGSizeMake(270,
MAXFLOAT);

UIFont *font=[UIFont
systemFontOfSize:18];

NSDictionary *attrs=@{NSFontAttributeName:font};

CGSize s=[str
boundingRectWithSize:size options:NSStringDrawingTruncatesLastVisibleLine |

NSStringDrawingUsesLineFragmentOrigin |

NSStringDrawingUsesFontLeading
attributes:attrs context:nil].size;

CGSize s1=[str sizeWithAttributes:attrs];

NSLog(@"%g %g",s.height,s.width);

NSLog(@"s1 :%g %g",s1.height,s1.width);

self.viewInfo.frame=CGRectMake(0 ,
0, s.width+20, s.height+38);

[self.viewInfo
setNeedsDisplay];

self.lbInfo.frame=CGRectMake(15,5,
270, s.height);

self.lbInfo.lineBreakMode=NSLineBreakByWordWrapping;

self.lbInfo.font=font;

self.lbInfo.numberOfLines=0;

self.lbInfo.text=str;

}
- (void)didReceiveMemoryWarning {

[super
didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.
}

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: