一. 要求

1.根据网络请求的回来的字符串内容,动态计算Label的高度.

二. 注意点

1. 要注意设置label 的 numberOfLines 为0;

2. MAXFLOAT 的作用. 设置高度无限大.

三.代码

#import "ViewController.h"

@interface ViewController ()

@property (nonatomic,strong) UILabel * label;

@end

@implementation ViewController

- (void)viewDidLoad

{

[super viewDidLoad];

[self createLabel];

}

- (void)createLabel

{

self.label = [[UILabel alloc] init];

self.label.backgroundColor = [UIColor yellowColor];

NSString * str = @"1、毕业后才知道校园恋爱是最纯洁的;\n2、毕业后才知道学习是最重要的;\n3、毕业后才知道校园生活是最幸福的;\n4、毕业后才知道宿舍生活是最好的;\n5、毕业后才知道食堂的饭菜是最便宜的;\n6、毕业后才知道上学是最美妙的事。\n7、毕业后才知道学生花钱最大手大脚......";

self.label.text = str;

self.label.numberOfLines = 0;

[self.view addSubview:self.label];

UIFont * font = self.label.font;

// iOS 7.0 之前的方法.已经被弃用

//    CGSize size = [self.label.text sizeWithFont:font constrainedToSize:CGSizeMake(_label.frame.size.width, MAXFLOAT) lineBreakMode:UILineBreakModeWordWrap];

NSDictionary * dict = @{

NSFontAttributeName : font

};

//计算label的文字宽高

CGSize size = [self.label.text boundingRectWithSize:CGSizeMake(self.view.frame.size.width, MAXFLOAT) options:NSStringDrawingUsesLineFragmentOrigin attributes:dict context:nil].size;

CGFloat nameH = size.height;

CGFloat nameW = size.width;

NSLog(@"w: %f --h: %f",nameW,nameH);

// 设置label的动态frame

self.label.frame = CGRectMake(0, 30, nameW, nameH);

}

@end

 

iOS-动态计算Label的高度的更多相关文章

  1. IOS7中动态计算UILable的高度

    .h文件 #import <UIKit/UIKit.h> @interface UILabel (ContentSize) - (CGSize)contentSize; @end .m文件 ...

  2. iOS 动态计算文本内容的高度

    关于ios 下动态计算文本内容的高度,经过查阅和网上搜素,现在看到的有以下几种方法: 1. //  获取字符串的大小  ios6 - (CGSize)getStringRect_:(NSString* ...

  3. 动态计算Label高度

    //1.设置该label的numberOfLines为0 self.titleLabel.numberOfLines = 0;    //2.字体的设置要与之前相同 NSDictionary * at ...

  4. iOS学习之根据文本内容动态计算文本框高度的步骤

    在视图加载的过程中,是先计算出frame,再根据frame加载视图的,所以在设计计算高度的方法的时候,设计成加号方法; //首先给外界提供计算cell高度的方法 + (CGFloat)heightFo ...

  5. iOS开发总结-UITableView 自定义cell和动态计算cell的高度

    UITableView cell自定义头文件:shopCell.h#import <UIKit/UIKit.h>@interface shopCell : UITableViewCell@ ...

  6. 根据文字动态计算Label高度或宽度

    //根据已知的label宽度计算文字高度 CGRect rect = [reson boundingRectWithSize:CGSizeMake(label_W, 0) options:NSStri ...

  7. iOS实现页面既显示WebView,WebView下显示TableView,动态计算WebView内容高度

    实现效果如下: 忽略底部的评论视图,太丑了,待完善...... 实现思路: 1>页面布局采用TableView实现,顶部"关注"模块的View是TableView的table ...

  8. iOS之动态计算文字的高度

    + (CGSize)boundingALLRectWithSize:(NSString *)txt Font:(UIFont *)font Size:(CGSize)size { NSMutableA ...

  9. Winfrom固定Label宽度,根据文本动态改变Label的高度 z

    Label,要固定住宽度,然后根据文本的长度来动态改变高度,一开始去网上找解决方案,各种根据字体大小啊,字数啊来动态改变,但是效果却不怎么好.最后灵机一动,想起了偶尔用过一次的FlowLayoutPa ...

随机推荐

  1. 从零开始编写自己的C#框架 ---- 系列文章

    目录: 从零开始编写自己的C#框架(1)——前言从零开始编写自己的C#框架(2)——开发前的准备工作从零开始编写自己的C#框架(3)——开发规范从零开始编写自己的C#框架(4)——文档编写说明从零开始 ...

  2. MVC视图中处理Json

    /// <summary> /// 登录 /// </summary> /// <param name="value"></param&g ...

  3. RFID Exploration and Spoofer a bipolar transistor, a pair of FETs, and a rectifying full-bridge followed by a loading FET

    RFID Exploration Louis Yi, Mary Ruthven, Kevin O'Toole, & Jay Patterson What did you do? We made ...

  4. Asp.net WebAPI 单元测试

    现在Asp.net webapi 运用的越来越多,其单元而是也越来越重要.一般软件开发都是多层结构,上层调用下层的接口,而各层的实现人员不同,一般大家都只写自己对应单元测试.对下层的依赖我们通过IOC ...

  5. python排序算法的实现-插入

    1.算法: 设有一组关键字{ K 1 , K 2 ,…, K n }:排序开始就认为 K 1 是一个有序序列:让 K 2 插入上述表长为 1 的有序序列,使之成为一个表长为 2 的有序序列:然后让 K ...

  6. gem install 出现Errno::ECONNRESET: Connection reset by peer - SSL_connect (https://api.rubygems.org

    在安装了rvm来管理多版本的ruby之后,想在不同环境下安装一些gems,结果gem install puma 之后,发现一次又一次失败. gem install 出现Errno::ECONNRESE ...

  7. 根据第三方提供的wsdl报文(axis2开发),进行的webservice应用的开发实例

    接口应用名称:NgCallService 入参和出参信息 入参和出参报文信息 入参: <?xml version="1.0" encoding="UTF-8&quo ...

  8. 【转】APP被苹果App Store拒绝的N个原因(持续补充)

    作为iOS开发者,估计有很多都遇到过APP提交到App Store被拒,然后这些被拒的原因多种多样,今天dApps收集了常见的被拒的原因,以便更多开发者了解. 1.程序有重大bug,程序不能启动,或者 ...

  9. 为YAESU FT-817ND 增加频谱功能

    > ft817可谓是QRP神机啊,可能是一开始就接触SDR的缘故,没有频谱显示,总觉得很难受,好在经典的817从不缺乏魔改.终于找到一个解决方案: http://item.taobao.com/ ...

  10. select into的不同数据库实现

    DB2中修改表的schema除了通常的创建别名,还可以删除表重建 删除表的顺序应该是先在另一个Schema下新建表,然后使用select ino将原表的数据导入新表,再删除原表. 实现如下: 在Sch ...