根据文本内容动态计算文本框高度的步骤

在视图加载的过程中,是先计算出frame,再根据frame加载视图的,所以在设计计算高度的方法的时候,设计成加号方法;

//首先给外界提供计算cell高度的方法
+ (CGFloat)heightForRowWithDic:(NSDictionary *)dic {
    //cell高度 = nameLabel高度 + contentLabel高度 + 间距;
    return [self heightForText:dic[@"content"]] + 30 + kHeight_NameLabel;
}

//动态计算文本高度
+ (CGFloat)heightForText:(NSString *)text {
    //1.创建计算文本高度的参考量
    //1.1 最大允许绘制的文本范围(尽量大点);
    CGSize maxSize = CGSizeMake(kWidth_ContentLabel, 2000);
    //1.2 配置计算时的行截取方式,要和contentLabel对应
    NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
    style.lineBreakMode = NSLineBreakByCharWrapping;
    //1.3 配置计算时的字体大小
    UIFont *font = [UIFont systemFontOfSize:14];
    //1.4 配置属性字典
    NSDictionary *dic = @{NSFontAttributeName:font, NSParagraphStyleAttributeName:style};
    //计算
    //如果想保留多个枚举值,泽枚举值中间加按位或|即可,并不是所有的枚举值都可以按位或,枚举值的赋值中有左移运算符时才可以.
    CGFloat height = [text boundingRectWithSize:maxSize options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:dic context:nil].size.height;

    return height;

}
在计算文本高度的时候,要给contentLabel设置一些属性

- (UILabel *)contentLabel {
    if (!_contentLabel) {
        self.contentLabel = [[UILabel alloc] initWithFrame:CGRectMake(kMarginLeft_ContentLabel, kMarginTop_ContentLabel, kWidth_ContentLabel, kHeight_ContentLabel)];

        //对contentLabel进行一些设置
        _contentLabel.font = [UIFont systemFontOfSize:14];
        //设置Label可以多行显示,0表示没有限制行数
        _contentLabel.numberOfLines = 0;
        //设置断行模式
        _contentLabel.lineBreakMode = NSLineBreakByCharWrapping;//以单个字符进行截取.
    }
    return [[_contentLabel retain] autorelease];
}

 
时间: 2024-11-04 20:15:30

根据文本内容动态计算文本框高度的步骤的相关文章

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

关于ios 下动态计算文本内容的高度,经过查阅和网上搜素,现在看到的有以下几种方法: 1. //  获取字符串的大小  ios6 - (CGSize)getStringRect_:(NSString*)aString { CGSize size; UIFont *nameFont=[UIFont fontWithName:@"Helvetica" size:13]; size=[aString sizeWithFont:nameFont constrainedToSize:CGSize

IOS7中动态计算UILable的高度

.h文件 #import <UIKit/UIKit.h> @interface UILabel (ContentSize) - (CGSize)contentSize; @end .m文件 #import "UILabel+ContentSize.h" @implementation UILabel (ContentSize) - (CGSize)contentSize { NSMutableParagraphStyle * paragraphStyle = [[NSMut

iOS-UILable多行显示文本内容、根据文本长短自动计算文本框高度

iAronTalk Blog opens. The clean and elegantlife style deduces the deep thought of life. -=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= UILabel作为UIView家族中的一员,其应用广泛,使用方法清晰明了深受发烧友们喜欢,是为首选. 针

iOS开发动态计算cell的高度

在iOS开发过程中,我们经常会用到UITableView, 谈到UITableView当然少不了UITableViewCell.那么有时候我们就会有疑惑,怎么样才能让cell的高度根据文字的大小多少,以及照片的高度来动态设计呢? 下面我们来看一下,到底怎么做才能让cell的高度动态变化,让界面看起来更美观协调一些呢? //动态设置cell的高度 + (CGFloat)heightForRowWithModel:(PhotoInfo *)photoInfo { //1.图片的高度 //让图片等比例

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

UITableView cell自定义头文件: shopCell.h #import <UIKit/UIKit.h> @interface shopCell : UITableViewCell @property (strong, nonatomic)  UIImageView *image;@property (strong, nonatomic)  UILabel *name;@property (strong, nonatomic)  UILabel *itemshop;@propert

swift - 动态计算文本高度

func heightOfCell(text : String) -> CGFloat {        let attributes = [NSFontAttributeName:UIFont.systemFontOfSize(14)]        let option = NSStringDrawingOptions.UsesLineFragmentOrigin        let rect:CGRect = text.boundingRectWithSize(CGSize(width:

动态计算文字的高度

+ (CGSize)sizeWithText:(NSString *)text andFont:(UIFont *)font andMaxSize:(CGSize)maxSize { CGSize expectedLabelSize = CGSizeZero; NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; paragraphStyle.lineBreakMode = NSLine

转:动态计算UITableViewCell高度详解

转自:http://www.cocoachina.com/industry/20140604/8668.html 不知道大家有没有发现,在iOS APP开发过程中,UITableView是我们显示内容常见的控件,本人觉得它是UIKit中最复杂的一个控件.今天要向大家介绍的就是如何动态计算UITableViewCell高度的一经验与技巧,在此做一些总结方便朋友们查阅.为了不让讲解空洞抽象,我还是用代码实例的方式进行讲解,这样更容易接收与学习. 本文将介绍四种情况下UITableViewCell的计

动态计算UITableViewCell高度详解 (转)

感觉挺有用的一篇文章,分析了4种解决方案.回头测试之.如果有别的方案,我会在后面补上. 原文地址:http://www.ifun.cc/blog/2014/02/21/dong-tai-ji-suan-uitableviewcellgao-du-xiang-jie/ 不知道大家有没有发现,在iOS APP开发过程中,UITableView是我们显示内容常见的控件,本人觉得它是UIKit中最复杂的一个控件.今天要向大家介绍的就是如何动态计算UITableViewCell高度的一经验与技巧,在此做一