iOS UILabe及UIFont用法总结

简介: iOS UILabe及UIFont用法总结

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

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

设置显示的文字

label.text=@"123";

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

@property(nonatomic,retain) UIFont*font;

//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(20, 20);

设置阴影颜色

label.shadowColor=[UIColor blackColor];

设置对齐模式

label.textAlignment=NSTextAlignmentJustified;

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

多行文本设置

label.lineBreakMode=NSLineBreakByCharWrapping;

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(nonatomic) NSInteger numberOfLines;

宽度自适应大小 默认是NO

@property(nonatomic) BOOL adjustsFontSizeToFitWidth;

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

@property(nonatomic) BOOL adjustsLetterSpacingToFitWidth

最小适应大小2.0-6.0

@property(nonatomic) CGFloat minimumFontSize

最小适应大小 6.0 之后

@property(nonatomic) CGFloat minimumScaleFactor

垂直方向的调整

@property(nonatomic) UIBaselineAdjustment baselineAdjustment;

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

返回文本绘制矩形

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

文本绘制函数

  • (void)drawTextInRect:(CGRect)rect

文本自动布局参数

@property(nonatomic) CGFloat preferredMaxLayoutWidth

目录
相关文章
|
8月前
|
Swift iOS开发
iOS @available 和 #available 的用法
iOS @available 和 #available 的用法
216 0
|
存储 缓存 算法
iOS 常见触发离屏渲染场景及优化方案总结
iOS 常见触发离屏渲染场景及优化方案总结
702 0
iOS 常见触发离屏渲染场景及优化方案总结
|
JSON 自然语言处理 Dart
Alibaba.com瘦包40MB——业界最全的iOS包大小技术总结
本文总结提炼了Alibaba.com App的瘦身的技术和策略,系统化地介绍APP瘦身的业务价值、分析技术、瘦身技术、防劣化机制,让读者可以系统化地了解APP瘦身的技术体系。并基于实践经验,介绍各种瘦身技术的ROI,让读者可以避免踩雷,将资源浪费在效果不佳的技术上。希望对你有所帮助。
Alibaba.com瘦包40MB——业界最全的iOS包大小技术总结
|
JSON 自然语言处理 编译器
Alibaba.com瘦包40MB——业界最全的iOS包大小技术总结
前言包大小是衡量APP性能的一项重要指标,它直接影响用户的下载点击率(包太大不想下)、下载安装成功率(下载慢不用了)、APP卸载率(太占空间先删掉)。包大小的计算逻辑很简单,它是各种类型的文件占用磁盘大小相加。APP瘦身的技术却很复杂,代码文件的复杂度和编译器策略决定了可执行文件的大小,业务功能和工程架构决定了代码文件的复杂度。iOS APP瘦身,需要掌握的技能有XCode构建技术、LLVM编译器
2827 0
Alibaba.com瘦包40MB——业界最全的iOS包大小技术总结
|
3月前
|
JSON 安全 数据安全/隐私保护
​iOS Class Guard github用法、工作原理和安装详解及使用经验总结
​iOS Class Guard github用法、工作原理和安装详解及使用经验总结
17 0
|
4月前
|
JSON 安全 数据安全/隐私保护
​iOS Class Guard github用法、工作原理和安装详解及使用经验总结
iOS Class Guard是一个用于OC类、协议、属性和方法名混淆的命令行工具。它是class-dump的扩展。这个工具会生成一个symbol table,这个table在编译期间会包含进工程中。iOS-Class-Guard能有效的隐藏绝大多数的类、协议、方法、属性和 实例变量 名。iOS-Class-Guard不是应用安全的最终解决方案,但是它绝对能让攻击者更难读懂你的程序。iOS-Class-Guard会加大代码分析和runtime检查的难度,这个工具可以认为是一个简单基础的混淆方法。由于OC的架构决定了iOS应用程序的剖析相当简单,check out一下链接就知晓了:
|
iOS开发
(六)IOS手势和触摸的用法
(六)IOS手势和触摸的用法
191 0
|
物联网 Android开发 iOS开发
iOS开发 - 蓝牙学习的总结
iOS开发 - 蓝牙学习的总结
129 0
|
安全 iOS开发 开发者
iOS 6版本与之前版本差异总结
iOS 6版本与之前版本差异总结
102 0
|
程序员 API iOS开发
iOS开发:个人对于textView基础用法的总结(其一)
从事了这么久ios开发,对于textView的使用并不陌生,它和textfield有相似的地方,也有不同的地方,这里只对textView的一些基础用法进行描述,textfield不在这里描述。
300 0