您的位置:首页 > 产品设计 > UI/UE

UILabel和UIFont开发技巧

2015-12-22 21:29 375 查看
初始化一个UILabel对象,并初始化大小

UILabel * label = [[UILabel alloc]initWithFrame:CGRectMake(120, 120, 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 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: