文档章节

UILabel自适应高度和自动换行- OC swift

夕阳_jhe
 夕阳_jhe
发布于 2015/08/17 14:38
字数 560
阅读 6367
收藏 1

        加粗;

        [UILabel setFont:[UIFont fontWithName:@"Helvetica-Bold" size:20]];

        加粗并且倾斜

        [UILabel setFont:[UIFont fontWithName:@"Helvetica-BoldOblique" size:20]];

        guessLikeLabel.font = UIFont(name: "Helvetica-Bold", size: 14)


//初始化label

    UILabel *label = [[UILabel alloc] init]; 

    NSString *text = @"这是一个测试!!!adsfsaf时发生发勿忘我勿忘我勿忘我勿忘我勿忘我阿阿阿阿阿阿阿阿阿阿阿阿阿啊00000000阿什顿。。。"

    label.text = text;

    [label setNumberOfLines:0];  

    UIFont *font = [UIFont fontWithName:@"Arial" size:14];

    //设置字体

    label.font = font;

    CGSize constraint = CGSizeMake(30020000.0f);

    CGSize size = [text sizeWithFont:font constrainedToSize:constraint lineBreakMode:UILineBreakModeWordWrap];

    [label setFrame:CGRectMake(100, size.width, size.height)];

    [self.view addSubview:label];




iOS7 UILabel 内容自适应 - OBJC

2014年08月29日 


//iOS7放弃使用“ CGSize actualsize = [tstring sizeWithFont:font constrainedToSize:size lineBreakMode:NSLineBreakByCharWrapping]; ”
    
    //基本设置
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 320, 300)];
    NSString *text = @"测试:阿啊阿啊阿啊阿啊阿啊阿啊阿啊阿啊阿啊阿啊阿啊阿啊阿啊阿asdafdddddaaaaaaaaajhkjkgghghghghghghghghghgghghhghghghghghghg啊阿啊阿啊阿啊阿啊阿啊";
    label.text = text;
    UIFont *textFont = [UIFont systemFontOfSize:14.f];
    label.font = textFont;
    
    //折行
    label.lineBreakMode = NSLineBreakByWordWrapping;
    
    //必须写,否则只显示一行
    [label setNumberOfLines:0];
    [self.view addSubview:label];
    
    //最大尺寸
    // MAXFLOAT 为可设置的最大高度
    CGSize size = CGSizeMake(300, MAXFLOAT);
    
    //获取当前那本属性
    NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:textFont,NSFontAttributeName, nil];
    //实际尺寸
    CGSize actualSize = [text boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil].size;
    
    label.frame = CGRectMake(10, 70, actualSize.width,actualSize.height);






//下面是自己在项目中写的, 当时出错了,因为在cellForItemAtIndexPath是先初使化cell,然后在赋值,所在初使化(cell的init中是拿不到_detailText,所以_detailTextLabel.text也是没有值的,不能计算frame

        UIFont *textFont = [UIFont systemFontOfSize:12.f];

        _detailTextLabel.numberOfLines = 0;//设置无限换行

        _detailTextLabel.lineBreakMode = NSLineBreakByCharWrapping;  //自动折行

        //CGSize size  = [_detailTextLabel.text boundingRectWithSize:_detailTextLabel.frame options:NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes:nil context:nil];

        //设置最大尺寸 10000.0( MAXFLOAT )为可设置的最大高度

        CGSize constraint = CGSizeMake([[UIScreen mainScreen] bounds].size.width-20, 10000.0);

        //获取当前文本属性

        NSDictionary *dic = [NSDictionary dictionaryWithObjectsAndKeys:textFont,NSFontAttributeName, nil];

        //实际尺寸

        CGSize actualSize = [_detailTextLabel.text boundingRectWithSize:constraint options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil].size;

        _detailTextLabel.frame = CGRectMake(10,  _topicImageView.frame.size.height+60+1+15, actualSize.width, actualSize.height);



 UILabel 内容自适应 - swift

        var detailTextLabel = UILabel()

        dtext = detailTextLabel.text

        detailTextLabel.font= UIFont.systemFontOfSize(12)

       
        //numberOfLines //标签最多显示行数,如果为0则表示多行 即设置无限换行

        detailTextLabel.numberOfLines = 0         

        detailTextLabel.lineBreakMode = NSLineBreakMode.ByCharWrapping  //自动折行


        //根据detailText文字长度调节topView高度

        let constraint = CGSize(width: topView.frame.size.width,      height: 10000.0)

        var size =dtext.boundingRectWithSize(constraint, options: NSStringDrawingOptions.UsesLineFragmentOrigin, attributes: NSDictionary(object:UIFont.systemFontOfSize(12), forKey: NSFontAttributeName) as [NSObject : AnyObject] ,context: nil)

        detailTextLabel.frame = CGRectMake(10,  topicImageView.frame.size.height+60+1+15, size.width, size.height)



© 著作权归作者所有

上一篇: tableview
下一篇: Xcode 断点调试
夕阳_jhe
粉丝 2
博文 54
码字总数 15591
作品 0
深圳
私信 提问
用UITextView撸一个顺畅的评论输入框

对比UITextField 继承关系: UITextField继承自UIControl,UITextView继承自UIScrollView; 输入行数 UITextView支持多行输入,可以滑屏垂直滚动,UITextField仅支持单行输入 Placeholder UI...

STzen
2018/05/10
0
0
蛇和梯子游戏,分别用oc和swift开发

蛇和梯子游戏,分别用oc和swift开发 心血来潮想学学swift,看了一下教程和开发文档,发现其实swift的很多类都是基于oc的,比如swift的UIButton是基于oc的UIButton。所以我想其实学过oc再学s...

weixin_42012181
2018/04/18
0
0
UILabel autolayout自动换行 版本区别

今天解决了一个与UILabel相关的Bug。 表现为在iOS7以上的系统中,UILabel能够自动换行,多行显示的字符串,而在iOS6上面则不会自动换行,直接打省略号。 正常情况下,numberOfLines设置为0,U...

Aimy
2014/12/04
0
0
iOS UItableviewCell实现可变高度的UITextView,动态刷新高度

下午,一个朋友问了一个问题,关于UITableView的,大概意思就是,他想在UITableView的Cell中实现UITextView在用户的输入过程中的高度动态更新。 关于高度自增长UITextView这个实现很简单,网...

神补刀
2015/08/12
0
7
用视图上移解决UITextField/UITextView被键盘遮盖问题

先看看UILabel/UITextField/UITextView的区别: UILabel 显示的文本只读,无法编辑,可以根据文字个数自动换行; UITextField 可编辑本文,但是无法换行,只能在一行显示;当点击键盘上的ret...

yoyoso
2015/03/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

ContentProvider和数据库的区别

大家好,今天我们来讲解ContentProvider和数据库的区别是他们之间的联系. 四大组件之一 1.ContentProvider是如何实现数据共享的? 1.在Android中,为了把自己程序的数据(一般是数据库)提供给其他...

天王盖地虎626
8分钟前
0
0
前端搜索

思路:使用indexOf或正则表达式

单线程生物
15分钟前
0
0
Navicat Premium 12破解激活

本文转载自:https://www.cnblogs.com/joyny/p/9536006.html 下载Navicat Premium 12并安装; 链接:https://pan.baidu.com/s/1mN-urlh--SX1vbq7hi81Ww 密码:menk 重要提示:该注册机来源于...

Ygam
17分钟前
0
0
ThreadGroup 线程组

在看tomcat源码时,TaskThreadFactory这个线程工厂类中用到ThreadGroup这个类,之前没有用到过,所以就特地查了一下 ThreadGroup这个属于java元老级的类,在java1.0版本中就出现了,里面还有...

二两豆腐
18分钟前
0
0
在 CentOS 或 RHEL 系统上检查可用的安全更新的方法

当你更新系统时,根据你所在公司的安全策略,有时候可能只需要打上与安全相关的补丁。大多数情况下,这应该是出于程序兼容性方面的考量。那该怎样实践呢?有没有办法让 yum 只安装安全补丁呢...

xiangyunyan
42分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部