图标组件

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。

效果图

icon

接口说明

// 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];