iOS应用中UILabel文字显示效果的常用设置总结

创建UIlabel对象

代码如下:

UILabel* label = [[UILabel alloc] initWithFrame:self.view.bounds];

设置显示文本

代码如下:

label.text = @"This is a UILabel Demo,";

设置文本字体

代码如下:

label.font = [UIFont fontWithName:@"Arial" size:35];

设置文本颜色

代码如下:

label.textColor = [UIColor yellowColor];

设置文本水平显示位置

代码如下:

label.textAlignment = UITextAlignmentCenter;

设置背景颜色

代码如下:

label.backgroundColor = [UIColor blueColor];

设置单词折行方式

代码如下:

label.lineBreakMode = UILineBreakModeWordWrap;

设置label是否可以显示多行,0则显示多行

代码如下:

label.numberOfLines = 0;

动态调整UILabel高度

代码如下:

[label sizeToFit];

根据内容大小,动态设置UILabel的高度

代码如下:

CGSize size = [label.text sizeWithFont:label.font constrainedToSize:self.view.bounds.size lineBreakMode:label.lineBreakMode];

CGRect rect = label.frame;

rect.size.height = size.height;

label.frame = rect;

换行模式


代码如下:

typedef enum {
   UILineBreakModeWordWrap = 0,      // 以空格为边界,保留整个单词
   UILineBreakModeCharacterWrap,     // 保留整个字符
   UILineBreakModeClip,                     // 到边界为止
   UILineBreakModeHeadTruncation,    // 省略开始,以……代替
   UILineBreakModeTailTruncation,      // 省略结尾,以……代替
   UILineBreakModeMiddleTruncation,  // 省略中间,以……代替,多行时作用于最后一行 
} UILineBreakMode;

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

技巧:根据字符串长度自动适应宽度和高度  


代码如下:

//这个frame是初设的,没关系,后面还会重新设置其size。
    UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];
    label.numberOfLines = 0;
    label.backgroundColor = [UIColor clearColor];
   
    NSDictionary *attributes = @{NSFontAttributeName:[UIFont systemFontOfSize:20],};
   
    NSString *str = @"abcdefg你上课可是你的拿到了";
    CGSize textSize = [str boundingRectWithSize:CGSizeMake(100, 100) options:NSStringDrawingTruncatesLastVisibleLine attributes:attributes context:nil].size;;
   
    [label setFrame:CGRectMake(100, 100, textSize.width, textSize.height)];
    label.textColor = [UIColor greenColor];
    label.text = str;
    [self.view addSubview:label];

(0)

相关推荐

  • iOS开发笔记--详解UILabel的相关属性设置

    在iOS编程中UILabel是一个常用的控件,下面分享一下UILabel的相关属性设置的方法. 很多学习iOS6编程都是从storyboard开始,用到UILabel时是将控件拖到storyboard中生成实现,如果想要在-(void)viewDidLoad中用代码如[_label initWithFrame:CGRectMake(X,Y,WIDTH,HEIGHT)]方法改变拖拽到storyboard的label的大小是行不通的,因为程序加载时先执行了-(void)viewDidLoad的代码,

  • iOS App开发中修改UILabel默认字体的方法

    在项目比较成熟的基础上,遇到了这样一个需求,应用中需要引入新的字体,需要更换所有Label的默认字体,但是同时,对于一些特殊设置了字体的label又不需要更换.乍看起来,这个问题确实十分棘手,首先项目比较大,一个一个设置所有使用到的label的font工作量是巨大的,并且在许多动态展示的界面中,可能会漏掉一些label,产生bug.其次,项目中的label来源并不唯一,有用代码创建的,有xib和storyBoard中的,这也将浪费很大的精力.这种情况下,我们可能会有下面两种处理方式. 一.普通方

  • iOS在固定的label上动态显示所有文字

    照例先看下效果图: 思路 创建一个view 作为所有内容的父控件, 并且添加到上面一个 label, 作为显示文字的载体 UILabel* contentLabel = [[UILabel alloc] init]; [contentLabel sizeToFit]; contentLabel.backgroundColor = [UIColor clearColor]; _contentLabel = contentLabel; [self addSubview:self.contentLab

  • iOS获取Label高度的几种方法与对比

    介绍 在设置 UILabel 的 Frame 高度时,不能简单的设置为字体的 font size.否则会将字体的一部分裁剪掉.因为 UILabel 在不同的字体设置下,对 Frame 的高度要求也不一样,大多数情况下都比Font的高度设置要高一些. 一.sizeThatFits 使用 view 的 sizeThatFits 方法. // return 'best' size to fit given size. does not actually resize view. Default is

  • iOS Label随字自动变大效果

    一.效果图. 二.工程图. 三.代码. RootViewController.h #import <UIKit/UIKit.h> //添加HPGrowingTextView头文件 #import "HPGrowingTextView.h" @interface RootViewController : UIViewController <HPGrowingTextViewDelegate> { HPGrowingTextView *textView; } @en

  • iOS长按UIlabel实现可复制功能

    前言 相信大家都知道在iOS中有三个控件自身是支持拷贝,粘贴的,如:UITextField,UITextView,UIWebView.但是,有时候我们会遇到需要长按UIlabel,弹出"复制"item,来实现可复制.那该怎么办呢?下面就来一起看看吧. 首先UIKit中提供给我们几个类 在开始之前,我们需要自定义一个WINCopyLabel继承UILable - (instancetype)initWithFrame:(CGRect)frame { if (self = [super i

  • iOS开发中使用UILabel设置字体的相关技巧小结

    一.初始化 复制代码 代码如下: UILabel *myLabel = [[UILabel alloc] initWithFrame:CGRectMake(40, 40, 120, 44)];      [self.view addSubview:myLabel]; 二.设置文字 1.设置默认文本 复制代码 代码如下: NSString *text = @"标签文本"; myLabel.text = text; 效果: 2.设置标签文本(此属性是iOS6.0之后才出现,如若不是必要,不

  • iOS App中UILabel的自定义及在Auto Layout中的使用

    自定义UILabel,接受触摸事件: 复制代码 代码如下: #import <UIKit/UIKit.h>   @interface myLabel : UILabel   @end 复制代码 代码如下: #import "myLabel.h" @implementation myLabel - (id)initWithFrame:(CGRect)frame {     self = [super initWithFrame:frame];     if (self) {

  • iOS App开发中扩展RCLabel组件进行基于HTML的文本布局

    iOS系统是一个十分注重用户体验的系统,在iOS系统中,用户交互的方案也十分多,然而要在label中的某部分字体中添加交互行为确实不容易的,如果使用其他类似Button的控件来模拟,文字的排版又将是一个解决十分困难的问题.这个问题的由来是项目中的一个界面中有一些广告位标签,而这些广告位的标签却是嵌在文本中的,当用户点击文字标签的位置时,会跳转到响应的广告页. CoreText框架和一些第三方库可以解决这个问题,但直接使用CoreText十分复杂,第三方库多注重于富文本的排版,对类似文字超链接的支

  • iOS中UILabel text两边对齐的实现代码

    废话不多说了,直接给大家贴代码了,具体代码如下所示: -(NSAttributedString *)setTextString:(NSString *)text { NSMutableAttributedString *mAbStr = [[NSMutableAttributedString alloc] initWithString:text]; NSMutableParagraphStyle *npgStyle = [[NSMutableParagraphStyle alloc] init]

随机推荐