JustIconFont

字体下载 2025-07-31

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