SwiftIcons 3.0

SwiftIcons 3.0

测试已测试
语言语言 SwiftSwift
许可证 MIT
发布最后发布2020年4月
SPM支持 SPM

Saurabh Rane 维护。




SwiftIcons

BuyMeACoffee

CocoaPods Platform Swift Carthage compatible

Travis License

Swift 字体图标库

请点赞这个库。

现在,您不需要下载不同的库来包含不同的字体图标。这个 SwiftIcons 库可以帮助您使用以下字体图标库中的图标:

  • Dripicons
  • 表情
  • FontAwesome
  • Icofont
  • Ionicons
  • Linearicons
  • Map-icons
  • Material icons
  • Open iconic
  • State face icons
  • 天气图标
  • TypIcons

SwiftIcons 支持 object library 中的不同对象。

  • UIImage
  • UIImageView
  • UILabel
  • UIButton
  • UISegmentedControl
  • UITabBarItem
  • UISlider
  • UIBarButtonItem
  • UIViewController
  • UITextfield
  • UIStepper

要求

  • iOS 9.0+
  • Xcode 8

安装

CocoaPods

CocoaPods 是 Cocoa 项目的依赖管理器。

确保您使用最新版本的CocoaPods,请运行以下命令:

$ gem install cocoapods
# (or if the above fails)
$ sudo gem install cocoapods

通过运行以下命令更新您的本地specs仓库:

$ pod repo update

将以下行添加到您的 Podfile 中:

target 'YourProject' do
    use_frameworks!
    pod 'SwiftIcons', '~> 2.3.2'
end

然后运行以下命令:

$ pod install

您可以通过在需要的位置导入库来开始使用该库。

import SwiftIcons

Carthage

Carthage 是Cocoa项目的去中心化依赖管理工具。

安装最新版本的 Carthage

将此行添加到您的 Cartfile 中:

github "ranesr/SwiftIcons" ~> 2.3.2

或对于 master

github "ranesr/SwiftIcons" "master"

然后运行 carthage update --platform ios,并根据 这些Carthage的说明 将构建的框架添加到您的项目中。

手动

复制 Source 文件夹中的所有文件。 文件链接

  • SwiftIcons.swift
  • Dripicons.ttf
  • Emoji.ttf
  • FontAwesomeBrands.ttf
  • FontAwesomeRegular.ttf
  • FontAwesomeSolid.ttf
  • Icofont.ttf
  • Ionicons.ttf
  • Linearicons.ttf
  • MapIcons.ttf
  • MaterialIcons.ttf
  • OpenIconic.ttf
  • Stateface.ttf
  • WeatherIcons.ttf
  • TypIcons.ttf

检查是否将所有ttf文件导入项目,"项目" > "目标" > "复制资源包"。

库引用

您可以在这里查看库引用文档。

用法

  • 不再需要图像图标。

每种字体图标都有不同类型的字体。

字体图标 版本 字体类型 图标
Dripicons 2.0 dripicons dripicons
表情 emoji emoji
FontAwesome 5.1.0 fontAwesome fontAwesome
Icofont 1.0.0 Beta icofont icofont
Ionicons 2.0.1 ionicons ionicons
Linearicons 1.0.0 linearIcons linearIcons
Map-icons 3.0.2 mapicons mapicons
Material icons 2.2.0 googleMaterialDesign googleMaterialDesign
Open iconic 1.1.1 openIconic openIconic
State face icons state state
天气图标 2.0.10 weather weather
TypIcons 2.0.7 TypIcons Typicons

设置任何对象的图标时,您必须说明它的字体类型,然后从特定的字体图标中选择您想设置的图标。

UIImagePickerController

import SwiftIcons

UIImage.init(icon: .emoji(.airplane), size: CGSize(width: 35, height: 35))

// Icon with colors
UIImage.init(icon: .emoji(.airplane), size: CGSize(width: 35, height: 35), textColor: .red)
UIImage.init(icon: .emoji(.airplane), size: CGSize(width: 35, height: 35), textColor: .white, backgroundColor: .red)

// Stacked icons with bigger background
UIImage.init(bgIcon: .fontAwesomeRegular(.circle), topIcon: .fontAwesomeRegular(.square))

// Stacked icons with smaller background
UIImage.init(bgIcon: .fontAwesomeSolid(.camera), topIcon: .fontAwesomeSolid(.ban), topTextColor: .red, bgLarge: false)

// Stacked icons with custom size
UIImage.init(bgIcon: .fontAwesomeSolid(.camera), topIcon: .fontAwesomeSolid(.ban), topTextColor: .red, bgLarge: false, size: CGSize(width: 50, height: 50))

UIImageView

import SwiftIcons

// Setting icon to image view
imageView.setIcon(icon: .weather(.rainMix))

// Icon with colors
imageView.setIcon(icon: .mapicons(.amusementPark), textColor: .white, backgroundColor: .blue, size: nil)

UILabel

import SwiftIcons

// Setting icon to label
label.setIcon(icon: .ionicons(.paintbrush), iconSize: 70)

// Icon with colors
label.setIcon(icon: .googleMaterialDesign(.rowing), iconSize: 70, color: .white, bgColor: textColor)

// Icon with text around it
label.setIcon(prefixText: "Bus ", icon: .linearIcons(.bus), postfixText: " icon", size: 20)

// Icon with color & colored text around it
label.setIcon(prefixText: "Medal ", prefixTextColor: .red, icon: .ionicons(.ribbonA), iconColor: .red, postfixText: "", postfixTextColor: .red, size: nil, iconSize: 40)

// Icon with text with different fonts around it
label.setIcon(prefixText: "Font ", prefixTextFont: font1!, icon: .fontAwesomeSolid(.font), postfixText: " icon", postfixTextFont: font2!)

// Icon with text with different fonts & colors around it
label.setIcon(prefixText: "Bike ", prefixTextFont: font1!, prefixTextColor: .red, icon: .mapicons(.bicycling), iconColor: textColor, postfixText: " icon", postfixTextFont: font2!, postfixTextColor: .blue, iconSize: 30)

UIButton

import SwiftIcons

// Setting icon to button
button.setIcon(icon: .linearIcons(.phone), forState: .normal)

// Icon with size and color
button.setIcon(icon: .openIconic(.clipboard), iconSize: 70, color: .blue, forState: .normal)

// Icon with text around it
button.setIcon(prefixText: "Please ", icon: .googleMaterialDesign(.print), postfixText: " print", forState: .normal)

// Icon with color & colored text around it
button.setIcon(prefixText: "Lock ", prefixTextColor: .red, icon: .googleMaterialDesign(.lock), iconColor: .yellow, postfixText: " icon", postfixTextColor: .blue, forState: .normal, textSize: 15, iconSize: 20)

// Icon with text with different fonts around it
button.setIcon(prefixText: "Happy ", prefixTextFont: font1!, icon: .ionicons(.happy), postfixText: " face", postfixTextFont: font2!, forState: .normal)

// Icon with text with different fonts & colors around it
button.setIcon(prefixText: "Pulse ", prefixTextFont: font1!, prefixTextColor: .darkGray, icon: .openIconic(.pulse), iconColor: .red, postfixText: " icon", postfixTextFont: font2!, postfixTextColor: .purple, forState: .normal, iconSize: 40)

// Icon with title below icon
button.setIcon(icon: .emoji(.ferrisWheel), title: "Ferris Wheel", color: .red, forState: .normal)

// Icon with title below icon with different color & custom font
button.setIcon(icon: .weather(.rainMix), iconColor: .yellow, title: "RAIN MIX", titleColor: .red, font: font!, backgroundColor: .clear, borderSize: 1, borderColor: .green, forState: .normal)

UISegmentedControl

import SwiftIcons

// Setting icon at particular index
segmentedControl.setIcon(icon: .linearIcons(.thumbsUp), forSegmentAtIndex: 0)
segmentedControl.setIcon(icon: .linearIcons(.thumbsDown), forSegmentAtIndex: 1)

// Icons with sizes & colors
segmentedControl.setIcon(icon: .fontAwesomeSolid(.male), color: .red, iconSize: 50, forSegmentAtIndex: 0)
segmentedControl.setIcon(icon: .fontAwesomeSolid(.female), color: .purple, iconSize: 50, forSegmentAtIndex: 1)

UITabBarItem

import SwiftIcons

// Setting icon to tab bar item
tabBar.items?[0].setIcon(icon: .fontAwesomeSolid(.font), size: nil, textColor: .lightGray)

// Stacked icons for tab bar item
tabBar.items?[1].setIcon(bgIcon: .fontAwesomeRegular(.circle), bgTextColor: .lightGray, topIcon: .fontAwesomeSolid(.square), topTextColor: .lightGray, bgLarge: true, size: nil)

UISlider

import SwiftIcons

// Change minimum & maximum value icons
slider.setMaximumValueIcon(icon: .emoji(.digitNine))
slider.setMinimumValueIcon(icon: .emoji(.digitZero))

// Change minimum & maximum value icons with colors
slider.setMaximumValueIcon(icon: .linearIcons(.pointerUp), customSize: nil, textColor: .red, backgroundColor: .clear)
slider.setMinimumValueIcon(icon: .linearIcons(.pointerDown), customSize: nil, textColor: .blue, backgroundColor: .clear)

UIBarButtonItem

import SwiftIcons

// Setting icon to bar button item
barButtonItem.setIcon(icon: .ionicons(.iosFootball), iconSize: 30)

// Icon with colors
barButtonItem.setIcon(icon: .ionicons(.iosFootball), iconSize: 30, color: textColor)

// Icon with custom cgRect
barButtonItem.setIcon(icon: .ionicons(.iosFootball), iconSize: 30, color: textColor, cgRect: CGRect(x: 0, y: 0, width: 30, height: 30), target: self, action: #selector(barButtonItem(sender:)))

// Icon with text around it
barButtonItem.setIcon(prefixText: "Please ", icon: .ionicons(.iosDownload), postfixText: " download", cgRect: CGRect(x: 0, y: 0, width: 30, height: 30), size: 23, target: self, action: #selector(barButtonItem(sender:)))

// Icon with color & colored text around it
barButtonItem.setIcon(prefixText: "Blue ", prefixTextColor: .red, icon: .ionicons(.iosFootball), iconColor: .blue, postfixText: " football", postfixTextColor: .green, cgRect: CGRect(x: 0, y: 0, width: 30, height: 30), size: 20, iconSize: 30, target: self, action: #selector(barButtonItem(sender:)))

// Icon with text with different fonts around it
barButtonItem.setIcon(prefixText: "Digit ", prefixTextFont: font1!, icon: .emoji(.digitOne), postfixText: " One", postfixTextFont: font2!, cgRect: CGRect(x: 0, y: 0, width: 30, height: 30), target: self, action: #selector(barButtonItem(sender:)))

// Icon with text with different fonts & colors around it
barButtonItem.setIcon(prefixText: "", prefixTextFont: font1!, prefixTextColor: .red, icon: .ionicons(.iosFootball), iconColor: .blue, postfixText: " football", postfixTextFont: font2!, postfixTextColor: .green, cgRect: CGRect(x: 0, y: 0, width: 30, height: 30), iconSize: 24, target: self, action: #selector(barButtonItem(sender:)))

UIViewController

import SwiftIcons

// Setting icon to the title
self.setTitleIcon(icon: .emoji(.animalHorse), iconSize: 30, color: .red)

UITextfield

import SwiftIcons

// Setting left view icon
textfield.setLeftViewIcon(icon: .fontAwesomeSolid(.search))

// Left view icon with colors & leftViewMode
textfield.setLeftViewIcon(icon: .state(.TX), leftViewMode: .always, textColor: .blue, backgroundColor: .clear, size: nil)
textfield.setLeftViewIcon(icon: .googleMaterialDesign(.plusOne), leftViewMode: .unlessEditing, textColor: .green, backgroundColor: .clear, size: nil)

// Setting right view icon
textfield.setRightViewIcon(icon: .openIconic(.questionMark))

// Right view icon with colors & rightViewMode
textfield.setRightViewIcon(icon: .weather(.rainMix), rightViewMode: .always, textColor: .red, backgroundColor: .clear, size: nil)

UIStepper

import SwiftIcons

// Setting icons
stepper.setDecrementIcon(icon: .ionicons(.iosPause), forState: .normal)
stepper.setIncrementIcon(icon: .ionicons(.iosPlay), forState: .normal)

例子

请查看SwiftIcons App。在示例项目中,如果您点击任何对象,您将可以在日志中看到该对象的图标方法描述。

使用SwiftIcons的应用

如果您在自己的应用程序中使用SwiftIcons并希望在这里列出,请简单地在此处创建一个新问题here

我总是好奇谁在使用我的项目😊

作者

Saurabh Rane

特别感谢Patrik Vaberer和他在Font-Awesome-Swift库上的初始工作

许可协议

SwiftIcons 在 MIT 许可协议下提供。更多详情请参阅 LICENSE 文件。