博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOS UILabe及UIFont用法总结
阅读量:6638 次
发布时间:2019-06-25

本文共 3844 字,大约阅读时间需要 12 分钟。

初始化一个UILabel对象,并初始化大小

UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(100100100,100)];

设置显示的文字

label.text=@"123";

和字体相关的一个类,字号大小默认17

@property(nonatomic,retainUIFont*font; 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
//7.0之后可用 设置字体风格
//    NSString *const UIFontTextStyleHeadline; 用于标题的风格
//    NSString *const UIFontTextStyleSubheadline;用于副标题的风格
//    NSString *const UIFontTextStyleBody;用于正文的字体
//    NSString *const UIFontTextStyleFootnote;用于脚注的字体
//    NSString *const UIFontTextStyleCaption1;用于标准字幕字体
//    NSString *const UIFontTextStyleCaption2;用于替换字幕字体
    
label.font=[UIFont preferredFontForTextStyle:UIFontTextStyleCaption2];
//说实话,没看出什么太大的差别
 
//设置字体和字体大小
+ (UIFont *)fontWithName:(NSString *)fontName size:(CGFloat)fontSize;
//返回所有字体的字体家族名称数组
+ (NSArray *)familyNames;
//按字体家族名称返回字体名称数组
+ (NSArray *)fontNamesForFamilyName:(NSString *)familyName;
//设置普通字体字号大小
+ (UIFont *)systemFontOfSize:(CGFloat)fontSize;
//设置加粗字体字号大小
+ (UIFont *)boldSystemFontOfSize:(CGFloat)fontSize;
//设置斜体字号大小
+ (UIFont *)italicSystemFontOfSize:(CGFloat)fontSize;
 
//一些只读属性
//字体家族名称
@property(nonatomic,readonly,retain) NSString *familyName;
//字体名称
@property(nonatomic,readonly,retain) NSString *fontName;
//字号大小
@property(nonatomic,readonly)        CGFloat   pointSize;
//字体设计模型,表示距离最高点偏移余量
@property(nonatomic,readonly)        CGFloat   ascender;
//底部的模型偏移量
@property(nonatomic,readonly)        CGFloat   descender;
//字体模型的头高信息
@property(nonatomic,readonly)        CGFloat   capHeight;
//字体模型的xHeight信息
@property(nonatomic,readonly)        CGFloat   xHeight;
//字体行高
@property(nonatomic,readonly)        CGFloat   lineHeight NS_AVAILABLE_IOS(4_0);
//模型主体信息
@property(nonatomic,readonly)        CGFloat   leading;
//创建一个新字体与当前字体相同,除了指定的大小
- (UIFont *)fontWithSize:(CGFloat)fontSize;
//通过描述信息返回字体 7.0后可用
+ (UIFont *)fontWithDescriptor:(UIFontDescriptor *)descriptor size:(CGFloat)pointSize NS_AVAILABLE_IOS(7_0);
//返回字体的描述信息,7.0后可用
- (UIFontDescriptor *)fontDescriptor NS_AVAILABLE_IOS(7_0);

设置字体颜色

label.textColor=[UIColor redColor];

设置阴影偏移量

label.shadowOffset=CGSizeMake(2020);

设置阴影颜色

label.shadowColor=[UIColor blackColor];

设置对齐模式

label.textAlignment=NSTextAlignmentJustified;

1
2
3
4
5
6
7
8
9
10
11
enum 
{
   
//沿左边沿对齐文本
   
NSTextAlignmentLeft      = 0,
   
//中心对齐
   
NSTextAlignmentCenter    = 1,
   
//右边沿对齐
   
NSTextAlignmentRight     = 2,
   
//最后一行自然对齐
   
NSTextAlignmentJustified = 3,
   
//默认对齐
   
NSTextAlignmentNatural   = 4,};
typedef 
NSInteger NSTextAlignment;

多行文本设置

label.lineBreakMode=NSLineBreakByCharWrapping;

1
2
3
4
5
6
7
8
9
10
11
12
13
enum 
{
   
//文本边缘处理
   
NSLineBreakByWordWrapping = 0,
   
//提前处理不合适的字符
   
NSLineBreakByCharWrapping,
   
//简单线性处理
   
NSLineBreakByClipping,
   
//丢失的开头用省略号表示
   
NSLineBreakByTruncatingHead,
   
//丢失的文本在末尾显示省略号
   
NSLineBreakByTruncatingTail,
   
//丢失的文本在中间显示省略号
   
NSLineBreakByTruncatingMiddle };
typedef 
NSUInteger NSLineBreakMode

使用attributedText绘制

@property(nonatomic,copy)   NSAttributedString *attributedText 

设置高亮的字体颜色

label.highlightedTextColor=[UIColor blueColor];

//设置是否高亮

label.highlighted=YES;

用户交互 默认关闭

label.userInteractionEnabled=NO;

是否有效,默认是YES,无效为灰色

label.enabled=NO;

显示的行数,0为无限

@property(nonatomicNSInteger numberOfLines;

宽度自适应大小 默认是NO

@property(nonatomicBOOL adjustsFontSizeToFitWidth;

字符适应宽度:不赞成使用

@property(nonatomicBOOL adjustsLetterSpacingToFitWidth

最小适应大小2.0-6.0

@property(nonatomicCGFloat minimumFontSize

最小适应大小 6.0 之后

@property(nonatomicCGFloat minimumScaleFactor

垂直方向的调整

@property(nonatomicUIBaselineAdjustment baselineAdjustment;

1
2
3
4
5
6
7
typedef 
enum 
{
   
//调整文本对应基线位置
   
UIBaselineAdjustmentAlignBaselines,
   
//调整文本相对其边框的中心
   
UIBaselineAdjustmentAlignCenters,
   
//调整文本相对于边界的左上角 默认的
   
UIBaselineAdjustmentNone,} UIBaselineAdjustment;

返回文本绘制矩形

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

文本绘制函数

- (void)drawTextInRect:(CGRect)rect

文本自动布局参数

@property(nonatomicCGFloat preferredMaxLayoutWidth 

转载地址:http://rapvo.baihongyu.com/

你可能感兴趣的文章
使用Python将MongoDB数据导到MySQL
查看>>
微软发布用于Serverless架构的Azure API Management
查看>>
让时间倒流的保存点:用Apache Flink的保存点技术重新处理数据流
查看>>
物联网技术周报第 126 期: 使用 Yocto 构建 Raspberry Pi 系统
查看>>
专访蘑菇街七公:25倍增长远非极限,优化需要偏执狂
查看>>
腾讯“云+未来”峰会政企专场推出“AI即服务”落地方案
查看>>
官宣!微软宣布桌面版 Edge将基于Chromium进行开发\n
查看>>
Dependabot:自动创建GitHub PR修复潜在漏洞
查看>>
Fake 5提供.NET Core支持
查看>>
LinkedIn开源Photon机器学习:支持Spark
查看>>
精通敏捷测试
查看>>
拿下618,京东祭出AI备战双11
查看>>
“计算机之子”winter:我的前端学习路线与方法
查看>>
Eclipse基金会发布MicroProfile 2.2,适用于Java微服务
查看>>
关于HTTPOXY漏洞的分析说明
查看>>
IBM将开源50个项目
查看>>
O2O商城系统开发必须知道的三个推广方案
查看>>
.NET Core完成向RyuJIT的迁移
查看>>
LeetCode[300] Longest Increasing Subsequence
查看>>
[deviceone开发]-土地销售App开源
查看>>