固定UILabel宽度分行显示

这种小伎俩估计都被用烂了,笔者给大家提供一个category文件,供大家简单设置哦.

各种富文本效果哦(普通文本也是可以用的呢):

3行,固定宽度200

2行,固定宽度200

无限行,固定宽度250

无限行,固定宽度250,设置段落样式

源码:

UILabel+SizeToFit.h  与  UILabel+SizeToFit.m

//
//  UILabel+SizeToFit.h
//  SizeToFit
//
//  Copyright (c) 2014年 Y.X. All rights reserved.
//#import <UIKit/UIKit.h>@interface UILabel (SizeToFit)- (void)fixWidth:(CGFloat)width         // 固定宽度position:(CGPoint)position      // 文字起始位置numberOfLines:(NSInteger)lines       // 行数(如果为0则表示为无限行)lineBreakMode:(NSLineBreakMode)mode; // 文字断开方式@end
//
//  UILabel+SizeToFit.m
//  SizeToFit
//
//  Copyright (c) 2014年 Y.X. All rights reserved.
//#import "UILabel+SizeToFit.h"@implementation UILabel (SizeToFit)
- (void)fixWidth:(CGFloat)widthposition:(CGPoint)positionnumberOfLines:(NSInteger)lineslineBreakMode:(NSLineBreakMode)mode
{CGRect newRect     = self.frame;newRect.size.width = width;newRect.origin     = position;self.frame         = newRect;self.numberOfLines = lines;self.lineBreakMode = mode;[self sizeToFit];
}@end

使用的源码(注,此处用到了自己写的一些源码,请君自行替换):

//
//  RootViewController.m
//  SizeToFit
//
//  Copyright (c) 2014年 Y.X. All rights reserved.
//#import "RootViewController.h"
#import "UILabel+SizeToFit.h"
#import "FontPool.h"@interface RootViewController ()@end@implementation RootViewController- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];if (self) {}return self;
}- (void)viewDidLoad
{[super viewDidLoad];self.view.backgroundColor = [UIColor blackColor];// 注册字体REGISTER_FONT(bundleFont(@"新蒂小丸子体.ttf"), @"新蒂小丸子体");// 设置段落样式NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];style.firstLineHeadIndent = 14.f * 2;// 设置富文本NSString *testStr = @"如果我有尾巴的话 —— 说起来有点不好意思,只要和你在一起,一定会止不住摇起来的吧。";NSArray *array \= @[[ConfigAttributedString font:[UIFont fontWithName:CUSTOM_FONT(@"新蒂小丸子体", 0) size:12.f]range:[testStr range]],[ConfigAttributedString foregroundColor:[UIColor whiteColor]range:[testStr range]],[ConfigAttributedString paragraphStyle:stylerange:[testStr range]],[ConfigAttributedString font:[UIFont fontWithName:CUSTOM_FONT(@"新蒂小丸子体", 0) size:14.f]range:[@"如果我有尾巴的话" rangeFrom:testStr]],[ConfigAttributedString foregroundColor:[UIColor redColor]range:[@"如果我有尾巴的话" rangeFrom:testStr]]];// 创建labelUILabel *label          = [UILabel new];// 设置富文本label.attributedText    = [testStr createAttributedStringAndConfig:array];// 0行,固定宽度200[label fixWidth:250position:CGPointMake(50, 100)numberOfLines:0lineBreakMode:NSLineBreakByTruncatingMiddle];[self.view addSubview:label];
}@end

核心代码处:

注意,只有执行了sizeToFit才是解决问题的关键所在:

就是这么简单:)

固定UILabel宽度分行显示相关推荐

  1. ios label文字行间距_ios实践之Label 字间距、行间距、两端对齐、分行显示

    UILabel算是iOS里使用最多的控件了吧,下面来说说它特殊的应用需求吧 一.设置字间距.行间距 这是一个比较常见的需求了 写一个UILabel的分类 @interface UILabel (ext ...

  2. '固定' table宽度,走起!

    为了让表格能够填充屏幕(剩余空白区域),常将其宽度属性定义为:100%,单元格也是用百分数来定义. 但这样就会出现问题: 如果单元格中的文本超过宽度限制,就会自动换行,高度自动增高,导致整个表格的样式 ...

  3. 微信小程序image图片自适应宽度比例显示的方法

    一.了解image组件 由于image有默认的固定的宽度和高度,这样我们在做图片自适应的时候,就不好做了.下面就来一起解决下 二.方法 (一).使用mode:widthFix widthFix:宽度不 ...

  4. 微信小程序——image图片自适应宽度比例显示的方法

    微信小程序的组件image是用来显示图片的,它有一下几个属性: 1.src              图片资源地址 2.mode          图片裁剪.缩放的模式 3.binderror     ...

  5. elementui table 表格固定列最后一行显示不全

    elementui table 表格固定列最后一行显示不全 这种情况有时在宽度刚好处于临界值状态时会出现.因为固定列是独立于表格body动态计算高度的,出现了固定列高度小于表格高度所以造成最后一行被遮 ...

  6. python双精度浮点数怎么写_Python双精度浮点数运算并分行显示操作示例

    本文实例讲述了Python双精度浮点数运算并分行显示操作.分享给大家供大家参考,具体如下: #coding=utf8 def doubleType(): ''''' Python中的浮点数是双精度浮点 ...

  7. Java黑皮书课后题第6章:6.37(格式化整数)编写一个测试程序,提示用户输入一个数字以及宽度,显示通过调用format方法返回的字符串

    6.37(格式化整数)编写一个测试程序,提示用户输入一个数字以及宽度,显示通过调用format方法返回的字符串 题目 题目描述 破题 代码 运行示例 题目 题目描述 6.37(格式化整数) 使用下面的 ...

  8. php中如何固定表格宽度,实例讲解DataTables固定表格宽度(设置横向滚动条)

    当表格的列比较多的时候,可能就需要固定表格的宽度了,默认的100%宽已经不适应了.默认的100%宽要实现改变窗口大小也100%的话,在table元素上添加width="100%", ...

  9. css实现文本超出宽度省略号显示

    2019独角兽企业重金招聘Python工程师标准>>> 单行文本超出宽度省略号显示 .text {width:20px;overflow:hidden;text-overfolw:e ...

最新文章

  1. PNAS-皮肤微生物群综合分析揭示人类皮肤的独特性并为其在哺乳动物的系统发育共生现象提供证据
  2. lstm timestep一般是多少_用LSTM中的不同时间步长预测使用keras
  3. cuda error invalid argument
  4. 在quartus 和 ISE 里直接调用modelsim的方法(转)
  5. php变量值随机,PHP生成各类随机数值
  6. 七.Hystrix Timeout机制
  7. C语言实现图形ADT(Graph ADT)接口COMP2521(附完整源码)
  8. IBASE write buffer
  9. 整理javascript操作文件说明.
  10. 头像裁剪框html css,CSS3 clip-path实现的用户头像裁剪效果
  11. java xml annotation_Annotation与XML配置ID生成策略
  12. img标签显示不出图片_前端开发,原生 JS 实现最简单的图片懒加载
  13. AGV机器人RFID传感器CK-G06A与西门子1200PLC应用手册
  14. SAP 电商云 Spartacus UI Cart 页面的 CMS 布局
  15. 台式计算机的组成和工作过程,计算机的组成及工作原理【图文】
  16. 微信小程序实战教程1503---生成二维码
  17. 智能尘埃来了!世界上最小计算机M3 仅1立方毫米
  18. C语言经典题10道之古典问题: 兔子生兔问题
  19. OpenVPN点对点虚拟专网通讯简述
  20. 淘宝客高级接口 阿里妈妈高级接口调用示例 淘宝客高佣转链接口 淘宝客订单接口...

热门文章

  1. 国内开源软件镜像网站大全
  2. 【原创】Windows下使用 Eclipse 管理 RabbitMQ 源码之问题解决
  3. Fikker反向代理服务器的网站缓存加速/网站加速基础教程
  4. 填充因子-FILL FACTOR
  5. String为null
  6. 十八种方法让你集中精力工作
  7. Nacos服务端流程图
  8. 集中式整合之加入springsecurity
  9. RabbitMQ Topic交换机(结果成功)
  10. 大规模服务化对于服务治理的要求