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 

专注技术,热爱生活,交流技术,也做朋友。 ——珲少 QQ群:203317592

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员维他命

VVeboTableView 源码解析

最近在看一些iOS性能优化的文章,我找到了VVeboTableView这个框架。严格来说这个不属于框架,而是作者用自己的方式优化UITableView的一个实践...

2001
来自专栏Golang语言社区

前端游戏编程基础-如何实现Canvas图像的拖拽、点击等操作

希望能对Canvas绘制出来的图像进行点击、拖拽等操作,因为Canvas绘制出的图像能很好的美化。好像是想做炉石什么的游戏,我也没玩过。 Canvas在我的理解...

4997
来自专栏小蠢驴iOS专题

iOS - 添加一个全局悬浮按钮

3044
来自专栏ShaoYL

UIScrollView

3206
来自专栏一“技”之长

iOS开发CoreAnimation解读之二——对CALayer的分析

        每一个UIView的对象中都有一个layer这样的属性,并且layer会负责view中有关图形绘制的相关操作,例如我们设置view的背景颜色和设...

782
来自专栏非典型技术宅

iOS动画系列之一:带时分秒指针的时钟动画(上)1. 最终实现的效果以及思维导图2. CALayer3. 隐式动画

4793
来自专栏陈满iOS

iOS开发·适配iPhone X相关的宏和方法

适配iPhone X和Xcode 9的过程中,除了与导航栏相关的问题,还有一个问题经常出现,就是UITableView相关的问题。下面两个办法可以解决多数错位的...

1384
来自专栏DannyHoo的专栏

iOS开发中创建一个纵向滑动控件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010105969/article/details/...

841
来自专栏進无尽的文章

实践-小效果 III

大家都知道这是通过 CAShapeLayer 和 CABasicAnimation 结合起来实现的,可是其中还是有需要注意的地方,实现的步骤大致如下:

1142
来自专栏iOS开发攻城狮的集散地

自定义UIPageControl、UITextView占位视图

2179

扫码关注云+社区

领取腾讯云代金券