博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS图文混排
阅读量:4086 次
发布时间:2019-05-25

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

自定义NSAttributedString分类

//  NSAttributedString+Additon.h#import 
@interface NSAttributedString (Additon)/// 使用图像和文本生成上下排列的属性文本////// @param image 图像/// @param imageWH 图像宽高/// @param title 标题文字/// @param fontSize 标题字体大小/// @param titleColor 标题颜色/// @param spacing 图像和标题间距////// @return 属性文本+ (instancetype)imageTextWithImage:(UIImage*)image imageWH:(CGFloat)imageWH title:(NSString*)title fontSize:(CGFloat)fontSize titleColor:(UIColor*)titleColor spacing:(CGFloat)spacing;@end

自定义NSAttributedString分类

////  NSAttributedString+Additon.m#import "NSAttributedString+Additon.h"@implementation NSAttributedString (Additon)+ (instancetype)imageTextWithImage:(UIImage *)image imageWH:(CGFloat)imageWH title:(NSString *)title fontSize:(CGFloat)fontSize titleColor:(UIColor *)titleColor spacing:(CGFloat)spacing {    // 文本字典    NSDictionary *titleDict = @{NSFontAttributeName : [UIFont systemFontOfSize:fontSize],                                NSForegroundColorAttributeName : titleColor};    NSDictionary *spacingDict = @{NSFontAttributeName : [UIFont systemFontOfSize:spacing]};    // 图片文本    NSTextAttachment *attachment = [[NSTextAttachment alloc] init];    attachment.image = image;    attachment.bounds = CGRectMake(0, 0, imageWH, imageWH);    NSAttributedString *imageText = [NSAttributedString attributedStringWithAttachment:attachment];    // 换行文本    NSAttributedString *lineText = [[NSAttributedString alloc] initWithString:@"\n\n" attributes:spacingDict];    // 按钮文字    NSAttributedString *text = [[NSAttributedString alloc] initWithString:title attributes:titleDict];    // 合并文字    NSMutableAttributedString *attM = [[NSMutableAttributedString alloc] initWithAttributedString:imageText];    [attM appendAttributedString:lineText];    [attM appendAttributedString:text];    return attM.copy;}@end

在按钮中使用图文混排

UIButton *btn = [[UIButton alloc]init];    // 创建图文混排规则(按钮-->图片&文字)    NSAttributedString *attrStr = [NSAttributedString imageTextWithImage:[UIImage imageNamed:imageName] imageWH:40 title:title fontSize:14 titleColor:[UIColor whiteColor] spacing:8];    // 设置图文混排    [btn setAttributedTitle:attrStr forState:UIControlStateNormal];    // 设置自动换行    btn.titleLabel.numberOfLines = 0;    // 设置文字居中    btn.titleLabel.textAlignment = NSTextAlignmentCenter;

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

你可能感兴趣的文章
Python - time库
查看>>
DL编程遇到的问题,记录下
查看>>
deeplearning.ai - 深度学习的实用层面
查看>>
Python - 程序的控制结构
查看>>
Python - random库
查看>>
Tensorflow 学习记录
查看>>
deeplearning.ai - 优化算法 (Optimization Algorithms)
查看>>
Python - 函数和代码复用
查看>>
deeplearning.ai - 超参数调试、Batch正则化、程序框架
查看>>
deeplearning.ai - 机器学习策略 (1)
查看>>
deeplearning.ai - 机器学习策略 (2)
查看>>
deeplearning.ai - 目标检测 Detection algorithms
查看>>
Python - 组合数据类型
查看>>
Python - 文件和数据格式化
查看>>
deeplearning.ai - 人脸识别和神经风格转换
查看>>
Python - 计算生态概览
查看>>
deeplearning.ai - 循环神经网络 (Recurrent Neural Networks)
查看>>
课后练习 - 测验2: Python基础语法(上) (第4周)
查看>>
课后练习 - 测验3: Python基础语法(下) (第7周)
查看>>
课后练习 - 测验4: 全课程综合测验 (考试周)
查看>>