本文转载至 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. Linux命令-目录处理命令:cp

    cp /etc/grub.conf /tmp 复制一个文件 cp -r /tmp/beijing/dongchengqu /root 复制dongchengqu目录到root目录 cp /root/i ...

  2. mosquitto ---mosquitto-auth-plug

    https://github.com/jpmens/mosquitto-auth-plug This is a plugin to authenticate and authorize Mosquit ...

  3. 51单片机晶振11.0592M延时函数

    /********************************************** º¯ÊýÃû£ºdelay_ms(uint z) ÑÓʱº¯Êý(12MHZ¾§Õñ) ´Ëº¯ÊýÑ ...

  4. Object-C中的字符串对象1-不可变字符串

    #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { ...

  5. atitit.Oracle 9 10 11 12新特性attilax总结

    atitit.Oracle 9  10 11  12新特性 1. ORACLE 11G新特性 1 1.1. oracle11G新特性 1 1.2. 审计 1 1.3. 1.   审计简介 1 1.4. ...

  6. redhat yum替换成CentOS yum 并修改源

    wget http://mirrors.163.com/centos/6/os/x86_64/Packages/python-iniparse-0.3.1-2.1.el6.noarch.rpm wge ...

  7. 对象.delegate=self的理解

    整理自:http://www.cocoachina.com/ask/questions/show/87430 各位大神,对象.delegate=self是啥意思,委托的意思不就是自己的任务交给其他人去 ...

  8. Ubuntu/Debian交叉编译安装ARM平台版本的ffmpeg

    1 准备工作 (1)libmp3lame库 下载:    wget http://downloads.sourceforge.net/lame/lame-3.99.tar.gz 解压 编译:./con ...

  9. jQuery新建HTML Element

    举个例: 创建一个<i>HelloWorld.</i> var italicText = $("<i></i>").text(&qu ...

  10. 在容器中使用erase函数,迭代器的处理

    在c++编程中,用到迭代器的时候,往往不知道如何删除当前迭代器指向的元素. erase函数:   返回下一个迭代器. 只使用vector的erase函数,记住,该函数是迭代器失效,返回下一个迭代器. ...