如何计算uilabel部分文字点击里面文字的行数

ios7之后根据UILabel的文字计算frame的方法_iOS开发_
ios7之后根据UILabel的文字计算frame的方法
来源:人气:284
ios7 新出来的根据label的文字和大小来确定label的宽高。
官方的方法是:
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(NSDictionary *)attributes context:(NSStringDrawingContext *)context NS_AVAILABLE_IOS(7_0);
其中NSStringDrawingOptions有四个枚举值:
typedef NS_OPTIONS(NSInteger, NSStringDrawingOptions) {
 // 如果文本内容超出指定的矩形限制,文本将被截去并在最后一个字符后加上省略号。如果没有指定NSStringDrawingUsesLineFragmentOrigin选项,则该选项被忽略
NSStringDrawingTruncatesLastVisibleLine = 1 && 5, // Truncates and adds the ellsis character to the last visible line if the text doesn't fit into the bounds specified. Ignored if NSStringDrawingUsesLineFragmentOrigin is not also set.
// 绘制文本时使用 line fragement origin 而不是 baseline origin
NSStringDrawingUsesLineFragmentOrigin = 1 && 0, // The specified origin is the line fragment origin, not the base line origin
// 计算行高时使用行距。(译者注:字体大小+行间距=行距)
NSStringDrawingUsesFontLeading = 1 && 1, // Uses the font leading for calculating line heights
// 计算布局时使用图元字形(而不是印刷字体)。
NSStringDrawingUsesDeviceMetrics = 1 && 3, // Uses image glyph bounds instead of typographic bounds
} NS_ENUM_AVAILABLE_IOS(6_0);
attributes是文本字体的属性:该参数要设置字体的大小。
context是上下文对象,用于包含信息:如何调整字间距以及缩放。最终,该对象包含的信息将用于文本绘制。该参数可为 nil。&
NSDictionary *attributes1 = @{NSFontAttributeName:[UIFont systemFontOfSize:20],
NSForegroundColorAttributeName:[UIColor redColor]
UILabel *titleLabel = [UILabel new];
titleLabel.text =
@"德玛西亚万岁,断剑重铸之日,骑士归来之时,我们要以困难的方式搞定他。我本可以打的轻一点!";
titleLabel.numberOfLines = 0;//多行显示,计算高度
titleLabel.textColor = [UIColor blackColor];
titleLabel.backgroundColor = [UIColor greenColor];
CGSize titleSize = [titleLabel.text boundingRectWithSize:CGSizeMake(300, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes1 context:nil].
titleLabel.frame = CGRectMake(10, 64, titleSize.width, titleSize.height);
[self.view addSubview:titleLabel];
效果图如下:
优质网站模板<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&如何计算uilabel里面文字的行数_百度知道
如何计算uilabel里面文字的行数
我有更好的答案
testLabel.size, [count integerValue]).lineHeight);;共 %td 行&
NSLog(@&quotCGFloat labelHeight = [self.frame, MAXFLOAT)]:CGSizeMake( self.testL
NSNumber *count = @((labelHeight) &#47.width.height.font.testLabel sizeThatFits
其他类似问题
为您推荐:
uilabel的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&

我要回帖

更多关于 uilabel文字居中 的文章

 

随机推荐