重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

ios开发uilabel,iOs开发是什么意思

iOS开发 UILabel 设置行间距,以及居中对齐

解决UILabel设置富文本字体后(即设置行间距),文字没有居中显示

让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:空间域名、网络空间、营销软件、网站建设、华安网站维护、网站推广。

iOS UILabel讲解以及根据字符串长度自动适应宽度和高度

1、创建

CGRect rect = CGRectMake(100, 200, 50, 50);

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

2、text //设置和读取文本内容,默认为nil

label.text = @”文本信息”; //设置内容

NSLog(@”%@”, label.text); //读取内容

3、textColor //设置文字颜色,默认为黑色

lable.textColor = [UIColor redColor];

4、font //设置字体大小,默认17

label.font = [UIFont systemFontOfSize:20]; //⼀一般方法

label.font = [UIFont boldSystemFontOfSize:20]; //加粗方法

label.font = [UIFont fontWithName:@"Arial" size:16]; //指定

字体的方法

//还有⼀一种从外部导入字体的方法。

5、textAlignment //设置标签文本对齐方式。

label.textAlignment = NSTextAlignmentCenter; //还有NSTextAlignmentLeft、NSTextAlignmentRight.

6、numberOfLines //标签最多显示行数,如果为0则表示多行。

label.numberOfLines = 2;

7、enabled //只是决定了Label的绘制方式,将它设置

为NO将会使文本变暗,表示它没有激活,这时向它设置颜色值是无效的。

label.enable = NO;

8、highlighted //是否高亮显示

label.highlighted = YES;

label.highlightedTextColor = [UIColor orangeColor]; //高亮

显示时的文本颜色

9、ShadowColor //设置阴影颜色

[label setShadowColor:[UIColor blackColor]];

10、ShadowOffset //设置阴影偏移量

[label setShadowOffset:CGSizeMake(-1, -1)];

11、baselineAdjustment //如果adjustsFontSizeToFitWidth属性设

置为YES,这个属性就来控制文本基线的行为。

label.baselineAdjustment = UIBaselineAdjustmentNone;

UIBaselineAdjustmentAlignBaselines = 0,默认,文本最上端与中线对齐。

UIBaselineAdjustmentAlignCenters,  文本中线与label中线对齐。

UIBaselineAdjustmentNone, 文本最低端与label中线对齐。

12、Autoshrink //是否自动收缩

Fixed Font Size 默认,如果Label宽度小于文字长度时时,文字大小不自动缩放

minimumScaleFactor 设置最小收缩比例,如果Label宽度小于文字长度时,文字

进行收缩,收缩超过比例后,停止收缩。

minimumFontSize 设置最小收缩字号,如果Label宽度小于文字长度时,文字字号

减小,低于设定字号后,不再减小。//6.0以后不再使用了。

label.minimumScaleFactor = 0.5;

13、adjustsLetterSpacingToFitWidth //改变字母之间的间距来适应Label大小

myLabel.adjustsLetterSpacingToFitWidth = NO;

14、 lineBreakMode //设置文字过长时的显示格式

label.lineBreakMode = NSLineBreakByCharWrapping;以字符为显示单位显

示,后面部分省略不显示。

label.lineBreakMode = NSLineBreakByClipping;剪切与文本宽度相同的内

容长度,后半部分被删除。

label.lineBreakMode = NSLineBreakByTruncatingHead;前面部分文字

以……方式省略,显示尾部文字内容。

label.lineBreakMode = NSLineBreakByTruncatingMiddle;中间的内容

以……方式省略,显示头尾的文字内容。

label.lineBreakMode = NSLineBreakByTruncatingTail;结尾部分的内容

以……方式省略,显示头的文字内容。

label.lineBreakMode = NSLineBreakByWordWrapping;以单词为显示单位显

示,后面部分省略不显示。

15、 adjustsFontSizeToFitWidth //设置字体大小适应label宽度

label.adjustsFontSizeToFitWidth = YES;

16、attributedText:设置标签属性文本。

NSString *text = @"first";

NSMutableAttributedString *textLabelStr =

[[NSMutableAttributedString alloc]

initWithString:text];

[textLabelStr

setAttributes:@{NSForegroundColorAttributeName :

[UIColor lightGrayColor], NSFontAttributeName :

[UIFont systemFontOfSize:17]} range:NSMakeRange(11,

10)];

label.attributedText = textLabelStr;

17、竖排文字显示每个文字加一个换行符,这是最方便和简单的实现方式。

label.text = @"请\n竖\n直\n方\n向\n排\n列";

label.numberOfLines = [label.text length];

18、计算UIlabel 随字体多行后的高度

CGRect bounds = CGRectMake(0, 0, 200, 300);

heightLabel = [myLabel textRectForBounds:bounds

limitedToNumberOfLines:20]; //计算20行后的Label的Frame

NSLog(@"%f",heightLabel.size.height);

19、UILabel根据字数多少自动实现适应高度

UILabel *msgLabel = [[UILabel alloc]

initWithFrame:CGRectMake(15, 45, 0, 0)];

msgLabel.backgroundColor = [UIColor lightTextColor];

[msgLabel setNumberOfLines:0];

msgLabel.lineBreakMode = UILineBreakModeWordWrap;

msgLabel.font = [UIFont fontWithName:@"Arial" size:12];

CGSize size = CGSizeMake(290, 1000);

msgLabel.text = @"获取到的deviceToken,我们可以通过webservice服务提

交给.net应用程序,这里我简单处理,直接打印出来,拷贝到.net应用环境中使

用。";

CGSize msgSie = [msgLabel.text sizeWithFont:fonts

constrainedToSize:size];

[msgLabel setFrame:CGRectMake(15, 45, 290, msgSie.height)];

20、渐变字体Label

UIColor *titleColor = [UIColor colorWithPatternImage:[UIImage

imageNamed:@"btn.png"]];

NSString *title = @"Setting";

UILabel *titleLabel = [[UILabel alloc]

initWithFrame:CGRectMake(0, 0, 80, 44)];

titleLabel.textColor = titleColor;

titleLabel.text = title;

titleLabel.font = [UIFont boldSystemFontOfSize:20];

titleLabel.backgroundColor = [UIColor clearColor];

[self.view addSubview:titleLabel];

[titleLabel release];

21、Label添加边框

titleLabel.layer.borderColor = [[UIColor grayColor] CGColor];

titleLabel.layer.borderWidth = 2;

+ (float)widthAuto:(NSString *)content fontSize:(CGFloat)fontSize contentheight:(CGFloat)height{

// 列宽

//    CGFloat contentHeight = height;

// 用何种字体进行显示

UIFont *font = [UIFont systemFontOfSize:fontSize];

// 计算出显示完内容需要的最小尺寸

CGSize size = CGSizeMake(100, 100);

// 计算出显示完内容需要的最小尺寸

NSDictionary * tdic = [NSDictionary dictionaryWithObjectsAndKeys:font,NSFontAttributeName,nil];

//ios7方法,获取文本需要的size,限制宽度

CGSize  actualsize =[content boundingRectWithSize:size options:NSStringDrawingUsesLineFragmentOrigin |NSStringDrawingUsesFontLeading attributes:tdic context:nil].size;

return actualsize.width;

}

IOS开发之UILabel文字局左上角显示

有时候,我们的label设置的高度比较高,然而文字比较少,这时候文字默认就会水平局左,垂直居中显示,我们都知道UILabel有水平局左,居右,居中的源方法,但是水平的确实没有,这时候的效果就是文字的上面空白很多,下面空白很多,我们只需要写一个UILabel的类就可以实现我们想要的效果,文字局左上角显示,其实很简单:

创建一个继承与UILabel的类,只需要在.m中写以下方法就可以

然后利用该类的名字为对象的属性,创建一个UILabel就可以了

iOS设置UILabel最大宽度(preferredMaxLayoutWidth)

在开发项目的时候,经常遇到需要适配uilabel的宽度的地方。如果label后面不需要紧跟其他的UI元素还可以,只需要设置一个label的宽度,然后字体靠左对齐就可以了。

但是,如果像图中这样依然采用这种方式,则会导致右边的元素不会紧跟着文字,达不到预想的效果。

这时preferredMaxLayoutWidth就可以发挥它的作用了。

// Support for constraint-based layout (auto layout)

// If nonzero, this is used when determining -intrinsicContentSize for multiline labels

@property(nonatomic) CGFloat preferredMaxLayoutWidth NS_AVAILABLE_IOS(6_0);

文档中说的大概意思就是,当约束基于auto layout时,如果这个值不是0,这个属性就可以用来固定多行label的宽度。

也就是说当文本很长的时候,可以通过这个属性来设置label的最大宽度,使label通过更多的行数来展示全部文本内容。

那么问题来了,我们要的效果是限制但行文本的最大宽度,而不是让文本多行展示。

这个地方我试过将label的numberOfLines设置为1,但是此时设置的最大宽度不起作用了。(毕竟preferredMaxLayoutWidth说明是约束多行文本的最大宽度。。)

所以,我又想到了一个曲线救国的办法,在xib中为label的高度加一个只有一行文字时高度的约束,这时经过我的测试就达到了预期的效果:只展示单行文字,并且label不会超过设定的最大宽度,文字长度较短时,label也是对应文本的相应宽度。完美!

(文章写的很少,有些啰嗦,见谅。)

iOS 开发-UILabel(文本)的使用

1.     创建CGRectrect = CGRectMake(100,200,50,50);

UILabel *label = [[UILabelalloc]initWithFrame:rect];

2.      text     设置和读取文本内容,默认为nil

label.text = @”文本信息”;     设置内容

NSLog(@”%@”, label.text)     打印label内容

3.      textColor      设置文字颜色,默认为黑色

lable.textColor = [UIColor redColor];

4.      font      设置字体大小,默认17

label.font = [UIFont systemFontOfSize:20]; 跟随系统默认字体

label.font=[UIFont boldSystemFontOfSize:20]; 设置字体加粗字号为20的label

label.font=[UIFont fontWithName:@"Arial"size:16]; 指定字体的方法, 还有⼀一种从外部导入字体的方法

5.      textAlignment      设置标签文本对齐方式

label.textAlignment = NSTextAlignmentCenter; 设置文本内容居中显示

label.textAlignment = NSTextAlignmentLeft; 设置文本内容居左显示

label.textAlignment = NSTextAlignmentRight; 设置文本内容居右显示

6.      numberOfLines      设置文本最多显示行数, 为0则表示行数不限(无限行)

label.numberOfLines = 2; 设置文本内容行数为2行

7.      enabled     只是决定了Label的绘制方式,将它设置为NO将会使文本变暗,表示它没有激活,这时向它设置颜色值是无效的, 默认为YES;

label.enable = NO;

8.      highlighted 是否高亮显示,默认为NO

label.highlighted = YES;  

label.highlightedTextColor = [UIColor orangeColor]; 高亮显示时的文本颜色

9.      ShadowColor     设置阴影颜色

[label setShadowColor:[UIColorblackColor]];

10.      ShadowOffset      设置阴影偏移量

[label setShadowOffset:CGSizeMake(-1,-1)];

11.      baselineAdjustment  

如果adjustsFontSizeToFitWidth属性设置为YES,这个属性就来控制文本基线的行为。

label.baselineAdjustment = UIBaselineAdjustmentNone;

UIBaselineAdjustmentAlignBaselines = 0默认,文本最上端与中线对齐。

    UIBaselineAdjustmentAlignCenters,文本中线与label中线对齐。

UIBaselineAdjustmentNone,文本最低端与label中线对齐。

12.      Autoshrink     是否自动收缩FixedFontSize 默认,如果Label宽度小于文字长度时,文字大小不自动缩放minimumScaleFactor 设置最小收缩比例,如果Label宽度小于文字长度时,文字进行收缩,收缩超过比例后,停止收缩。minimumFontSize 设置最小收缩字号,如果Label宽度小于文字长度时,文字字号减小,低于设定字号后,不再减小。//6.0以后不再使用了。

label.minimumScaleFactor = 0.5;

13.      adjustsLetterSpacingToFitWidth     

       改变字母之间的间距来适应Label大小

       label.adjustsLetterSpacingToFitWidth = NO;

14.      lineBreakMode    设置文字过长时的显示格式

label.lineBreakMode = NSLineBreakByCharWrapping;以字符为显示单位显示,后面部分省略不显示。

label.lineBreakMode=NSLineBreakByClipping;剪切与文本宽度相同的内容长度,后半部分被删除。

label.lineBreakMode=NSLineBreakByTruncatingHead;前面部分文字以……方式省略,显示尾部文字内容。

label.lineBreakMode=NSLineBreakByTruncatingMiddle;中间的内容以……方式省略,显示头尾的文字内容。

label.lineBreakMode=NSLineBreakByTruncatingTail;结尾部分的内容以……方式省略,显示头的文字内容。

label.lineBreakMode=NSLineBreakByWordWrapping;以单词为显示单位显示,后面部分省略不显示。

15.      adjustsFontSizeToFitWidth    设置字体大小适应label宽度

label.adjustsFontSizeToFitWidth = YES;

16.      attributedText      设置标签属性文本。

NSString*text=@"first";

NSMutableAttributedString *textLabelStr = [[NSMutableAttributedStringalloc]initWithString:text];       

   [textLabelStrsetAttributes:@{NSForegroundColorAttributeName[UIColorlightGrayColor],NSFontAttributeName:    [UIFontsystemFontOfSize:17]} range:NSMakeRange(11,10)];

label.attributedText = textLabelStr;

17.     竖排文字显示每个文字加一个换行符,这是最方便和简单的实现方式。

label.text=@"请\n竖\n直\n方\n向\n排\n列";

label.numberOfLines = [label.text length];(可以直接设置成数字)

18.     计算UIlabel 随字体多行后的高度

CGRect bounds = CGRectMake(0,0,200,300);

heightLabel = [label textRectForBounds:bounds limitedToNumberOfLines:20];计算20行后的Label的Frame   

NSLog(@"%f",heightLabel.size.height);

19.     UILabel根据字数多少自动实现适应高度

UILabel*msgLabel = [[UILabel alloc] initWithFrame:CGRectMake(15,45,0,0)];

msgLabel.backgroundColor=[UIColor lightTextColor];

[msgLabel setNumberOfLines:0];

msgLabel.lineBreakMode = UILineBreakModeWordWrap;

msgLabel.font = [UIFont fontWithName:@"Arial"size:12];

CGSize size = CGSizeMake(290,1000);

msgLabel.text = @"一个人 一首歌 一杯酒 一支烟 一部手机 一台电脑 一杯清茶 一路清贫 一路走 一路停 一个远方 一个你还没到来 万世孤独";

CGSize msgSie = [msgLabel.text sizeWithFont:fontsconstrainedToSize:size];

[msgLabel setFrame:CGRectMake(15,45,290,msgSie.height)];

20.      渐变字体

LabelUIColor *titleColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"btn.png"]];

NSString *title = @"Setting";

UILabel*titleLabel = [[UILabel alloc]initWithFrame:CGRectMake(0,0,80,44)];

titleLabel.textColor=titleColor;

titleLabel.text = title;

titleLabel.font = [UIFont boldSystemFontOfSize:20];

titleLabel.backgroundColor=[UIColor clearColor];

[self.view addSubview:titleLabel];

21.      Label添加边框

titleLabel.layer.borderColor = [[UIColor grayColor] CGColor];

titleLabel.layer.borderWidth = 2;

22. 设置label内边距

    .h文件

    @interface DrawRectLabel : UILabel

    @property ( nonatomic , assign ) UIEdgeInsets edgeInsets;

    @end

    .m文件      需要重写方法:  - ( void )drawTextInRect:(CGRect)rect

- (CGRect)textRectForBounds:(CGRect)bounds limitedToNumberOfLines:(NSInteger)numberOfLines{

   UIEdgeInsetsinsets = self .edgeInsets;

   CGRect rect = [ super textRectForBounds:UIEdgeInsetsInsetRect(bounds, insets)limitedToNumberOfLines:numberOfLines];

rect.origin.x    -= insets.left;

   rect.origin.y    -= insets.top;

rect.size.width  += (insets.left+ insets.right);

rect.size.height+= (insets.top+ insets.bottom);

return rect;

}


文章标题:ios开发uilabel,iOs开发是什么意思
URL地址:http://cqcxhl.com/article/dssesoi.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP