ICONFONT
使用Enum IconFont。
支持自定义ICONFONT(您可以从Iconfont.cn,ICONMOON制作自定义ICONFONT)
支持开源图标:
- Fontawesome v5.8.1(免费)
- 标志性v1.1.1
- 离子v4.5.5
- 唯一v3.0.1
- Octicons v8.4.2
可可录
JustIconFont'
# support to FontAwesome、Iconic、Ionicons、MaterialIcons、Octicons
pod ' JustIconFont /FontAwesome'
pod ' JustIconFont /Iconic'
pod ' JustIconFont /Ionicons'
pod ' JustIconFont /MaterialIcons'
pod ' JustIconFont /Octicons'">
use_frameworks!
pod ' JustIconFont '
# support to FontAwesome、Iconic、Ionicons、MaterialIcons、Octicons
pod ' JustIconFont /FontAwesome'
pod ' JustIconFont /Iconic'
pod ' JustIconFont /Ionicons'
pod ' JustIconFont /MaterialIcons'
pod ' JustIconFont /Octicons'
预览
用法
基本的
每个图标都可以以uiimage或nsattribedstring形式呈现。
我们可以用字体大小或图像来创建UIImage。一个是根据字体的大小创建的。另一个是根据图像的大小创建的。
// NSAttributedString
let attributedString = NSAttributedString . iconFont ( Octicons . logoGithub , fontSize : 25 )
label . attributedText = attributedString
button . setAttributedTitle ( title : attributedString , for : . normal )
let attributes = NSAttributedString . attributes ( with : Octicons . logoGithub , fontSize : 30 )
tabBarItem . title = Octicons . logoGithub . unicode
tabBarItem . setTitleTextAttributes ( attributes , for : . normal )
barButtonItem . title = Octicons . logoGithub . unicode
barButtonItem . setTitleTextAttributes ( attributes , for : . normal )
// UIImage with fontSize. UIImage size is 39 * 30
let image = UIImage . iconFont ( Octicons . logoGithub , fontSize : 30 )
imageView . image = image
button . setImage ( image , for : . normal )
tabBarItem . image = image
tabBarItem . selectedImage = image
barButtonItem . image = image
// UIImage with imageSize. UIImage size is 30 * 30
// image will scaled to fit with fixed aspect.
let image = UIImage . iconFont ( Octicons . logoGithub , imageSize : CGSize ( width : 30 , height : 30 ) )
imageView . image = image扩展
Uikit有一些扩展。
Uilabel
// use FontAwesome Brands
label . iconFont ( size : 25 , icon : FontAwesome . Brands . github )
label . iconFont ( size : 25 , icon : FontAwesome . Brands . github , color : . red ) UIImageView
// use Octicons
imageView . iconFont ( Octicons . logoGithub ) // imageSize = imageView.frame.size
imageView . iconFont ( Octicons . logoGithub , fontSize : 30 )
imageView . iconFont ( Octicons . logoGithub , imageSize : CGSize ( width : 30 , height : 30 ) ) Uibutton
// if color is nil, icon's color is depend on `tintClor`
button . iconFont ( Octicons . logoGithub , fontSize : 30 )
button . iconFont ( Octicons . logoGithub , fontSize : 30 , color : . lightGray , for : . normal )
button . iconFont ( Octicons . logoGithub , fontSize : 30 , color : . red , for : . highlighted ) Uibarbuttonitem
// use MaterialIcons
// if color is nil, icon's color is depend on `tintClor`
barButtonItem . iconFont ( size : 25 , icon : MaterialIcons . book )
barButtonItem . iconFont ( size : 25 , icon : MaterialIcons . book , color : color ) Uitabbaritem
// use FontAwesome Solid
tabBarItem . title = " solid "
// if color is nil, icon will present the default color
tabBarItem . iconFont ( FontAwesome . Solid . addressBook , fontSize : 25 )
tabBarItem . iconFont ( FontAwesome . Solid . addressBook , fontSize : 25 , color : . red , for : . selected )
// use FontAwesome Regular
rightTabBarItem . title = " regular "
rightTabBarItem . iconFont ( FontAwesome . Regular . addressBook , fontSize : 25 )
rightTabBarItem . iconFont ( FontAwesome . Regular . addressBook , fontSize : 25 , color : . red , for : . selected ) 自定义ICONFONT
自定义ICONFONT应实现协议ICONFONTTYPE
创造
public enum MyIconFont : String {
case feedback = " u{e656} "
case search = " u{e651} "
case home = " u{e64f} "
case clock = " u{e648} "
case like = " u{e643} "
case shoppingCart = " u{e63f} "
}
/// Implement protocol IconFontType
public extension MyIconFont : IconFontType {
/// Font family name. The fully specified name of the font.
/// This name incorporates both the font family name and
/// the specific style information for the font.
var name : String {
return " iconfont "
}
/// path of TTF file
var filePath : String ? {
return Bundle . main . path ( forResource : " iconfont " , ofType : " ttf " )
}
var unicode : String {
return self . rawValue
}
}
/// There is another way to setup custom iconfont
/// If your TTF file's name is equel to font family name
/// you just need to implement protocol IconFontEnumType and return font name
public extension MyIconFont : IconFontEnumType {
var name : String {
return " iconfont "
}
}用法
label . iconFont ( MyIconFont . clock , fontSize : 25 )
label . iconFont ( MyIconFont . feedback , fontSize : 30 )
label . iconFont ( MyIconFont . shoppingCart , fontSize : 35 )下载源码
通过命令行克隆项目:
git clone https://github.com/Xiaoye220/JustIconFont.git