iconfont 图片控件(功能类似于 imageview)实际是通过 string 的 drawrect 功能画出的 image 对象。
AUIconView 为 iconfont 矢量图控件,使用方式与 UIimage 类似。
iconfont 图片控件(功能类似于 imageview)实际是通过 string 的 drawrect 功能画出的 image 对象。
说明目前只支持正方形的矢量图。
iconfont 相当于是加载了一个字体,一个字体对应了多张图片,每个图片有一个 unicode 码,所以可以设置 text 为对应的 unicode 码,并调用 string 的 drawInRect 方法将 iconfont 渲染出来。
每个 iconfont 集合实际就是一个 ttf 字体文件,因此可以加载多个 ttf 字体文件,每个 ttf 字体文件有一个名称,默认为 AntUI 的 ttf 字体,名称为 auiconfont。
效果图
接口说明
// AntUI 默认 iconfont 名称
#define kICONFONT_FONTNAME (@"auiconfont")
// AntUI 默认 iconfont 路径
#define kICONFONT_FONTPATH (@"APCommonUI.bundle/iconfont/auiconfont")
/**
iconfont 图片控件(可以类似当做 imageview 来使用)
实际是通过 string 的 drawrect 功能画出的 image 对象,
注意目前只支持正方形的矢量图
iconfont 相当于是加载了一个字体,一个字体对应了多张图片,每个图片有一个 unicode 码,
所以可以设置 text 为对应的 unicode 码,并调用 string 的 drawInRect 方法将 iconfont 渲染出来。
每个 iconfont 集合实际就是一个 ttf 字体文件,因此可以加载多个
ttf 字体文件,每个 ttf 字体文件有一个名称,默认为 AntUI 的 ttf 字体
名称为 auiconfont。
*/
@interface AUIconView : UIImageView
@property (nonatomic, strong) UIColor *color; // 矢量图颜色(默认蚂蚁蓝)
@property (nonatomic, strong) NSString *name; // 矢量图名称
@property (nonatomic, strong) NSString *fontName; // 矢量图字库名称
/**
初始化方法
@param frame 视图 frame
@param name iconfont 图片名称
@return AUIconView 实例
*/
- (instancetype)initWithFrame:(CGRect)frame name:(NSString *)name;
/**
初始化方法
(如果该种 iconfont 字体已经加载过,则不需要传入 fontPath 也可以渲染)
@param frame 视图 frame
@param name iconfont 图片名称
@param fontName iconfont 字体名称
@return AUIconView 实例
*/
- (instancetype)initWithFrame:(CGRect)frame name:(NSString *)name fontName:(NSString *)fontName;
/**
获取 iconView 的 size
@return 如果是 iconfont,返回的是 iconfont 的 size,如果是普通的 imageview 返回的是 image 的 size
*/
- (CGSize)iconViewSize;
@end
@interface UIImage (AUIconFont)
/**
注册 iconfont(只需要调用一次)
@param fontName iconfont 字体名称
@param fontPath iconfont 路径(如 @"AntUI.bundle/iconfont/auiconfont")
*/
+ (void)registerIconFont:(NSString *)fontName fontPath:(NSString *)fontPath;
/**
获取一个正方形矢量图(长和宽相等)
@param name 名称
@param width 大小
@param color 图像颜色,传 nil,默认为蚂蚁蓝
@return 正方形矢量图
*/
+ (UIImage *)iconWithName:(NSString *)name
width:(CGFloat)width
color:(UIColor *)color;
/**
获取一个正方形矢量图(长和宽相等)
@param name 名称
@param fontName 矢量字体名称
@param width 大小
@param color 图像颜色,传 nil,默认为蚂蚁蓝
@return 正方形矢量图
*/
+ (UIImage *)iconWithName:(NSString *)name
fontName:(NSString *)fontName
width:(CGFloat)width
color:(UIColor *)color;
@end
代码示例
// 使用 AUIconView
AUIconView *view = [[AUIconView alloc] initWithFrame:CGRectZero name:_array[indexPath.row]];
view.tag = 1;
view.size = CGSizeMake(30, 30);
view.origin = CGPointMake(100, 10);
view.color = RGB(0x2b91e2);
[cell.contentView addSubview:view];
// 单独使用 image 的扩展
self.image = [UIImage iconWithName:self.name fontName:self.fontName width:width color:self.color];
文档内容是否对您有帮助?