//创建uilabel

UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(20, 40, 280, 80)];

//设置背景色

label.backgroundColor = [UIColor grayColor];

//设置tag

label.tag = 91;

//设置内容

label.text = @"Hello World";

//设置内容字体和字体大小

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

//文本自适应大小 只会变小 当numberOfLines为1时才有效

label.adjustsFontSizeToFitWidth = YES;

//文本自适应缩小的最小字体大小 默认为 0.0 上面要YES

label.minimumFontSize = 12;

//文本颜色

label.textColor = [UIColor blueColor];

//文本最多行数,为0时没有最大行数限制

label.numberOfLines = 2;

//文本高亮

label.highlighted = YES;

//文本是否可变

label.enabled = YES;

//设置label的背景色透明

label.backgroundColor = [UIColor clearColor];

//文本阴影颜色

label.shadowColor = [UIColor grayColor];

//阴影偏向 第一个横向 >0 向右 < 0向左 第二个纵向  >0 向下 < 0向上

label.shadowOffset = CGSizeMake(1.0, 1.0);

//是否与用户交互

label.userInteractionEnabled = YES;

//文本超出label边界文本的截取方式

label.lineBreakMode = UILineBreakModeTailTruncation;

/*

typedef enum {

UILineBreakModeWordWrap = 0,    以空格为边界,保留整个单词  默认方式

UILineBreakModeCharacterWrap,   保留整个字符

UILineBreakModeClip,            到边界为止

UILineBreakModeHeadTruncation,  省略开始,以....代替

UILineBreakModeTailTruncation,  省略结尾,以....代替

UILineBreakModeMiddleTruncation,省略中间,以....代替

} UILineBreakMode;

*/

//baselineAdjustment这个值控制文本的基线位置,只有label.adjustsFontSizeToFitWidth = YES;时有效 自适应大小要有效 label.numberOfLines为1

label.baselineAdjustment = UIBaselineAdjustmentNone;

/*

typedef enum {

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

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

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

} UIBaselineAdjustment;

*/

//设置文本对齐方式 中间对齐

label.textAlignment = UITextAlignmentCenter;

/*

typedef enum {

UITextAlignmentLeft = 0, 左对齐  默认方式

UITextAlignmentCenter,   中间对其

UITextAlignmentRight,    右对齐

} UITextAlignment;

*/

//把label加到当前窗口上

[self.window addSubview:label];

//释放掉label

[label release];

UILabel自适应高度和自动换行

//初始化label

UILabel *label1 = [[UILabel alloc] initWithFrame:CGRectMake(0,0,0,0)];

//设置自动行数与字符换行

[label setNumberOfLines:0];

label.lineBreakMode = UILineBreakModeWordWrap;

// 测试字串

NSString *s = @"这是一个测试!!!adsfsaf这是一个测试忘这是一个测试我阿阿这是一个测试阿这是一个测试阿啊00000000阿这是一个测试顿。。。这是一个测试";

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

//设置一个行高上限

CGSize size = CGSizeMake(320,2000);

//计算实际frame大小,并将label的frame变成实际大小

CGSize labelsize = [s sizeWithFont:font constrainedToSize:size lineBreakMode:UILineBreakModeWordWrap];

label1.frame = CGRectMake(0, 0, labelsize.width, labelsize.height);

UILable 使用全面解析相关推荐

  1. iOS开发系列--UITableView全面解析

    iOS开发系列--UITableView全面解析 2014-08-23 23:20 by KenshinCui, 2202 阅读, 18 评论, 收藏,  编辑 --UIKit之UITableView ...

  2. golang通过RSA算法生成token,go从配置文件中注入密钥文件,go从文件中读取密钥文件,go RSA算法下token生成与解析;go java token共用

    RSA算法 token生成与解析 本文演示两种方式,一种是把密钥文件放在配置文件中,一种是把密钥文件本身放入项目或者容器中. 下面两种的区别在于私钥公钥的初始化, init方法,需要哪种取哪种. 通过 ...

  3. List元素互换,List元素转换下标,Java Collections.swap()方法实例解析

    Java Collections.swap()方法解析 jdk源码: public static void swap(List<?> list, int i, int j) {// ins ...

  4. 条形码?二维码?生成、解析都在这里!

    二维码生成与解析 一.生成二维码 二.解析二维码 三.生成一维码 四.全部的代码 五.pom依赖 直接上代码: 一.生成二维码 public class demo {private static fi ...

  5. Go 学习笔记(82)— Go 第三方库之 viper(解析配置文件、热更新配置文件)

    1. viper 特点 viper 是一个完整的 Go应用程序的配置解决方案,它被设计为在应用程序中工作,并能处理所有类型的配置需求和格式.支持特性功能如下: 设置默认值 读取 JSON.TOML.Y ...

  6. Go 学习笔记(77)— Go 第三方库之 cronexpr(解析 crontab 表达式,定时任务)

    cronexpr 支持的比 Linux 自身的 crontab 更详细,可以精确到秒级别. ​ 1. 实现方式 cronexpr 表达式从前到后的顺序如下所示: 字段类型 是否为必须字段 允许的值 允 ...

  7. mybatis配置文件解析

    mybatis配置文件解析 mybatis核心配置文件`mybatis-config.xml文件. mybatis的配置文件包含了会深深影响mybatis行为的设置和属性信息. 能配置的内容: con ...

  8. 谷歌BERT预训练源码解析(二):模型构建

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/weixin_39470744/arti ...

  9. Python 标准库之 xml.etree.ElementTree xml解析

    Python 标准库之 xml.etree.ElementTree Python中有多种xml处理API,常用的有xml.dom.*模块.xml.sax.*模块.xml.parser.expat模块和 ...

最新文章

  1. mysql维护分区脚本_mysql 5.6 分区维护
  2. 行为模式之Observer模式
  3. C++的Json解析库:jsoncpp和boost
  4. javafx之TableView的FXCSS
  5. 顶级程序员的心得 Coders at Work (III)
  6. 插图 引用 同一行两个插图_数学身份的优雅LED插图
  7. 【linux驱动分析】misc设备驱动
  8. Linux 命令收集
  9. “程序员年薪50万到底有多累、多辛苦?”,句句扎心
  10. 联想小新增加固态硬盘后安装不了系统_固态硬盘装双系统不成功,装第二个系统时提示 windows没法完成安装,安装将在重启计算机后继续。...
  11. LeetCode 167.Two Sum II 解题报告
  12. 1rem等于多少px (rem和px怎样转换)
  13. itext 5 根据模板生成PDF util类
  14. openwrt 开启p2p下载后不定时断流处理办法
  15. 流量精灵刷流量的实例教程
  16. Extension 与主app共享数据
  17. poj 1787 多重背包(硬币付款不找钱)
  18. linux网卡强制5G频率,用户反馈称Deepin 20对某些WIFI的5G信号无法接收,附解决办法...
  19. 基于JAVA校园外卖系统Web端计算机毕业设计源码+系统+数据库+lw文档+部署
  20. Android培训全面课程(32天实战课程)

热门文章

  1. QML拖拽GridView元素重新排序示例
  2. 扩散模型:Diffusion models as plug-and-play priors作为即插即用先验的扩散模型
  3. 机器人采制样是什么_机器人铁矿石采制样工艺流程
  4. Lighthouse前端性能测试工具的使用
  5. Fluke DSX2-5000/8000诞生记——千锤百炼只为完美呈现
  6. [Go实战]个人第一个go样例,gin+gorm
  7. 初识C语言——常见的输入函数(一)
  8. 开通www 国际域名个人网站操作介绍
  9. 【算法】桶排序(Bucket Sort)详解
  10. std::expected以及其开源实现