uilabel 和uitextview 自适应大小

时间:2022-09-22 19:12:56

本文转载至 http://blog.csdn.net/liulichao20/article/details/8957752

分类: ios2013-05-21 22:06 321人阅读 评论(0) 收藏 举报

//UILabel自动换行,自适应高度

UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero];

[label setBackgroundColor:[UIColor clearColor]];

[label setFont:[UIFont systemFontOfSize:14]];

[label setLineBreakMode:UILineBreakModeWordWrap];

[label setNumberOfLines:0];

[self.view addSubview:label];

NSString *str = @" fsdfadsfdsfsdfads  fdsfads水电费 水电费水电费水电费水电费水电费水电费水电费水电费水电费 水电费水电费水电费 水电费时代fsdf ";

CGSize size = [str sizeWithFont:[UIFont systemFontOfSize:14]constrainedToSize:CGSizeMake(320,500) lineBreakMode:UILineBreakModeWordWrap];

[label setText:str];

[label setFrame:CGRectMake(0.0f, 20.0f, 300, size.height)];

[label release];

//UITextView自动换行,自适应高度

UITextView *textView = [[UITextView alloc] initWithFrame:CGRectMake(0, 150, 320,240)];

textView.backgroundColor = [UIColor clearColor];

textView.text = str;

textView.scrollEnabled = YES;

textView.font = [UIFont systemFontOfSize:14];

textView.userInteractionEnabled = NO;

textView.autoresizingMask = UIViewAutoresizingFlexibleHeight;

[self.view addSubview:textView];

本文转载至  http://tangchuanyao.com/20120507760/

自动调整UITextView/UILabel的高度height

很多时候都需要依据用户输入的内容自动调整UILabel/UITextView的高度和宽度,特别是UINavigationController的标题,超过一行的时候默认就是「…」我们希望他能换行表示,这样就需要根据内容调整titleView的高度啦。直接贴sample代码,高度和宽度可以根据自己的需要调整。

UILabel Sample code

1
2
3
4
5
6
7
CGRect frame = CGRectMake(20, 0, 280,44);
CGSize labelsize = [titleLabel.text sizeWithFont:[UIFont boldSystemFontOfSize: 16.0f]
                   constrainedToSize:CGSizeMake(320, 44)
                       lineBreakMode:UILineBreakModeTailTruncation];
frame.size.width = labelsize.width;
frame.size.height = labelsize.height;
titleLabel.frame = frame;

UITextView Sample code

1
2
3
4
5
6
CGRect frame = noteTextView.frame;
CGSize size = [noteTextView.text sizeWithFont:noteTextView.font
                        constrainedToSize:CGSizeMake(280, 1000)
                            lineBreakMode:UILineBreakModeTailTruncation];
frame.size.height = size.height > 1 ? size.height + 20 : 64;
noteTextView.frame = frame;

UITextView是UIScrollView的子类,因此有contentSize属性,也可以按如下实现

1
2
3
CGRect frame = noteTextView.frame;
frame.size.height = noteTextView.contentSize.height;
noteTextView.frame = frame;

本文转载至   http://blog.sina.com.cn/s/blog_759d3e120101alji.html

苹果API

UILineBreakMode

Options for wrapping and truncating text. (Deprecated. Use NSLineBreakMode instead.)

typedef enum { 
   UILineBreakModeWordWrap = 0, 
   UILineBreakModeCharacterWrap, 
   UILineBreakModeClip, 
   UILineBreakModeHeadTruncation, 
   UILineBreakModeTailTruncation, 
   UILineBreakModeMiddleTruncation, 
} UILineBreakMode;

NSLineBreakMode

These constants specify what happens when a line is too long for its container.

enum {
   NSLineBreakByWordWrapping = 0,
   NSLineBreakByCharWrapping,
   NSLineBreakByClipping,
   NSLineBreakByTruncatingHead,
   NSLineBreakByTruncatingTail,
   NSLineBreakByTruncatingMiddle
};
typedef NSUInteger NSLineBreakMode

lineBreak模式在6.0之前一直用UILineBreakMode枚举类型,6.0使用NSLineBreakMode枚举类型。枚举值中各个值的意义,解释如下:

   UILineBreakModeWordWrap = 0, 
   以单词为单位换行,以单位为单位截断。 
   UILineBreakModeCharacterWrap, 
   以字符为单位换行,以字符为单位截断。 
   UILineBreakModeClip, 
   以单词为单位换行。以字符为单位截断。 
   UILineBreakModeHeadTruncation, 
   以单词为单位换行。如果是单行,则开始部分有省略号。如果是多行,则中间有省略号,省略号后面有4个字符。 
   UILineBreakModeTailTruncation, 
   以单词为单位换行。无论是单行还是多行,都是末尾有省略号。 
   UILineBreakModeMiddleTruncation, 
   以单词为单位换行。无论是单行还是多行,都是中间有省略号,省略号后面只有2个字符。      

uilabel 和uitextview 自适应大小的更多相关文章

  1. 【转】UILabel、UITextView自适应得到高度

    原文:http://blog.csdn.net/xcysuccess3/article/details/8331549 在iOS中,经常遇到需要根据字符串的内容动态指定UILabel,UITextVi ...

  2. iOS:定制自适应大小的透明吐司弹框

    一.简单介绍 创建一个吐司消息的黑色透明弹框,可以根据消息长短自适应大小. 可以手动创建手动显示手动关闭,也可以手动创建自动显示自动关闭. 简单好用. 二.代码使用 .h文件 // // LiveHU ...

  3. Qt自适应大小显示图片,添加菜单

    由于后面的图像处理需要UI,OpenCV自带也不怎么会,MFC实在懒得学的.听同学说Qt不错,就用Qt做UI了. 本文主要介绍三个内容:在Qt Creator中使用OpenCV2.Qt中自适应显示图片 ...

  4. iOS HTML 字符串中的图片 自适应大小

    本文原文地址:http://www.cnblogs.com/qianLL/p/6095988.html 有时候 我们接收数据的时候  后台给的数据室一串HTML 的字符串  但是 我们要显示出来  这 ...

  5. Android项目实战(五):TextView自适应大小

    对于设置TextView的字体默认大小对于UI界面的好看程度是很重要的,小屏幕设置的文字过大或者大屏幕设置的文字过小都造成UI的不美观 现在就让我们学习自适应大小的TextView控件,即当文字长度变 ...

  6. css控制图片自适应大小

    相信大家做网页时经常会碰到大分辨率的图片会把表格涨破以致漂亮的网页面目全非,但只要使用以下的CSS语句即可解决.      该CSS的功能是:大于600的图片自动调整为600显示. <style ...

  7. IOS UITextView自适应高度

    LOFTER app需要实现了一个类似iPhone短信输入框的功能,它的功能其实蛮简单,就是:[UITextView的高度随着内容高度的变化而变化].实现思路应该是: 在UITextView的text ...

  8. 【QT】QPixmap在Label中自适应大小铺满

    KeepAspectRatio:设置pixmap缩放的尺寸保持宽高比. setScaledContents:设置label的属性scaledContents,这个属性的作用是允许(禁止)label缩放 ...

  9. Winform窗体控件自适应大小

    自己写的winform窗体自适应大小代码,代码比较独立,很适合贴来贴去不会对原有程序造成影响,可以直接继承此类或者把代码复制到自己的代码里面直接使用 借鉴了网上的一些资料,最后采用重写WndProc方 ...

随机推荐

  1. C语言标准历史发展轨迹

    ISO/IEC 9899:1990 +ISO/IEC 9899:1990/Amd 1:1995 +ISO/IEC 9899:1990/Cor 1:1994 +ISO/IEC 9899:1990/Cor ...

  2. &lbrack;转&rsqb;easyui tree 模仿ztree 使用扁平化加载json

    原文地址:http://my.oschina.net/acitiviti/blog/349377 参考文章:http://www.jeasyuicn.com/demo/treeloadfilter.h ...

  3. Android监听点击事件实现的三种方法

    监听点击事件实现的三种方法:1.匿名内部类2.外部类3.直接实现接口 1.匿名内部类: package com.jereh.calculator; import android.content.Con ...

  4. java 无法找到main类解决办法

    java   无法找到main类解决办法 如果Java类有包名,你必须建相应的包文件夹并把文件编译或拷贝到到相应的文件夹下: 如下: 1.源文件文件:          E:\test\src\tes ...

  5. C语言中char&ast; 和 char &lbrack;&rsqb;区别

    想要把丢掉的东西捡起来,还是很辛苦啊,今天我就发现,我连char* 和 char []的区别都不知道. 很多人觉得这两个定义效果一样,其实差别很大.以下是个人的一些看法,有不正确的地方望指正. 本质上 ...

  6. AT指令

    AT+CMGF=0  初始化 AT+IPR=115200 AT+CPAS   查询工作状态,0:可以接受AT指令,1:不能接受AT指令 ATA  应答本次电话 ATSO=2 设置2秒后自动应答 ATS ...

  7. FxCop卸载后依然生成文件夹的问题

    在 http://www.cnblogs.com/heroius/p/8270004.html 中,通过编辑csproj文件可以移除对旧版nuget独立程序的依赖. 实际上,通过编辑项目文件的方式可以 ...

  8. 申请JetBrains学生免费注册码

    1.申请.edu.*后缀的邮箱 从某个知乎用户上面得到了两个可以申请的后缀edu的邮箱 上海交通大学校友统一身份认证:https://register.alumni.sjtu.edu.cn/alumn ...

  9. 关于B树B+树的详细解释——绝对精彩

    B树是一种完全平衡树,B+树是B树的升级版,使用更多.B树和B+树存在的目的是如何提高磁盘文件的访问(如数据库)效率. 关于B树和B+树的一篇比较好的文章: https://www.cnblogs.c ...

  10. Python——接口类、抽象类

    建立一个接口类.抽象类的规范 from abc import abstractmethod,ABCMeta class Payment(metaclass=ABCMeta): # 元类 默认的元类 t ...