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 )
