Swift - Extension to use Font Awesome
Source: BorgGreen
//Apple official APP ICON guidelines
https://developer.apple.com/library/content/qa/qa1686/_index.html
//Important: iTunesArtwork icon images should be in png format, but name them without the .png extension.
//To add an image programmatically from one in the asset catalogue:
var chat = UIImage(named: "Chat")
var chatImageView = UIImageView(image: chat)
//Tab Bar Icons
// https://medium.com/@khoanguyenvan/how-to-create-a-custom-tab-bar-icons-in-ios-a9d5738788cc
//Prepare the image you want to use as the tab bar icon (you should use a black and white image so that you don’t have to remove color).
//Set the background to ‘Transparent’ rather than white.
//Remove all white from the image so that it was just a black image with a transparent background.
//Export the image to be a square with dimensions 75x75 pixels (and named yourImageName@3x.png), 50x50 pixels (and named yourImageName@2x.png), and 25x25 pixels(and named yourImageName.png).
//You can use a icon with white color ( 255,255,255 ) from http://www.flaticon.com/.
//Remember to download white color!
//Adding FONT ICONS into your project:
https://www.linkedin.com/pulse/using-icon-fonts-xcode-paul-tangen
// 01. Download FontAwesome.otf file from http://fontawesome.io and copy into project
// 02. Add the font to the plist: "Fonts provided by application > Item 0 > FontAwesome.otf
// 03. Click on the font file, and in the Identity and Type Inspector tab on the right, tick the Target Membership box.
// 04. Get the unicode ID of the character you need: http://fontawesome.io/cheatsheet/
// 05. Create a Constants.swift file with a Struct and Enums:
// FontConstants.swift
// BorgGreen
//
// Created by Rocco Labellarte on 27/11/2017.
// Copyright © 2017 Yaddoop Ltd. All rights reserved.
// https://www.linkedin.com/pulse/using-icon-fonts-xcode-paul-tangen
// https://github.com/thii/FontAwesome.swift/blob/master/FontAwesome/Enum.swift
import Foundation
import UIKit
struct Constants{
enum iconSize: Int {
case xsmall = 16
case small = 24
case medium = 48
case large = 72
case xlarge = 144
case xxlarge = 216
}
enum iconFont: String {
case material = "MaterialIcons-Regular"
case fontAwesome = "FontAwesome"
}
enum iconLibrary: String {
case fiveHundredPixels = "\u{f26e}"
case addressBook = "\u{f2b9}"
case addressBookO = "\u{f2ba}"
case addressCard = "\u{f2bb}"
case addressCardO = "\u{f2bc}"
case adjust = "\u{f042}"
case adn = "\u{f170}"
case alignCenter = "\u{f037}"
case alignJustify = "\u{f039}"
case alignLeft = "\u{f036}"
case alignRight = "\u{f038}"
case amazon = "\u{f270}"
case ambulance = "\u{f0f9}"
case americanSignLanguageInterpreting = "\u{f2a3}"
case anchor = "\u{f13d}"
case android = "\u{f17b}"
case angellist = "\u{f209}"
case angleDoubleDown = "\u{f103}"
case angleDoubleLeft = "\u{f100}"
case angleDoubleRight = "\u{f101}"
case angleDoubleUp = "\u{f102}"
case angleDown = "\u{f107}"
case angleLeft = "\u{f104}"
case angleRight = "\u{f105}"
case angleUp = "\u{f106}"
case apple = "\u{f179}"
case archive = "\u{f187}"
case areaChart = "\u{f1fe}"
case arrowCircleDown = "\u{f0ab}"
case arrowCircleLeft = "\u{f0a8}"
case arrowCircleODown = "\u{f01a}"
case arrowCircleOLeft = "\u{f190}"
case arrowCircleORight = "\u{f18e}"
case arrowCircleOUp = "\u{f01b}"
case arrowCircleRight = "\u{f0a9}"
case arrowCircleUp = "\u{f0aa}"
case arrowDown = "\u{f063}"
case arrowLeft = "\u{f060}"
case arrowRight = "\u{f061}"
case arrowUp = "\u{f062}"
case arrows = "\u{f047}"
case arrowsAlt = "\u{f0b2}"
case arrowsH = "\u{f07e}"
case arrowsV = "\u{f07d}"
case aslInterpreting = "\u{f2a3}A"
case assistiveListeningSystems = "\u{f2a2}"
case asterisk = "\u{f069}"
case at = "\u{f1fa}"
case audioDescription = "\u{f29e}"
case automobile = "\u{f1b9}A"
case backward = "\u{f04a}"
case balanceScale = "\u{f24e}"
case ban = "\u{f05e}"
case bandCamp = "\u{f2d5}"
case bank = "\u{f19c}A"
case barChart = "\u{f080}"
case barChartO = "\u{f080}A"
case barcode = "\u{f02a}"
case bars = "\u{f0c9}"
case bath = "\u{f2cd}"
case battery0 = "\u{f244}A"
case battery1 = "\u{f243}A"
case battery2 = "\u{f242}A"
case battery3 = "\u{f241}A"
case battery4 = "\u{f240}A"
case batteryEmpty = "\u{f244}"
case batteryFull = "\u{f240}"
case batteryHalf = "\u{f242}"
case batteryQuarter = "\u{f243}"
case batteryThreeQuarters = "\u{f241}"
case bed = "\u{f236}"
case beer = "\u{f0fc}"
case behance = "\u{f1b4}"
case behanceSquare = "\u{f1b5}"
case bell = "\u{f0f3}"
case bellO = "\u{f0a2}"
case bellSlash = "\u{f1f6}"
case bellSlashO = "\u{f1f7}"
case bicycle = "\u{f206}"
case binoculars = "\u{f1e5}"
case birthdayCake = "\u{f1fd}"
case bitbucket = "\u{f171}"
case bitbucketSquare = "\u{f172}"
case bitcoin = "\u{f15a}A"
case blackTie = "\u{f27e}"
case blind = "\u{f29d}"
case bluetooth = "\u{f293}"
case bluetoothB = "\u{f294}"
case bold = "\u{f032}"
case bolt = "\u{f0e7}"
case bomb = "\u{f1e2}"
case book = "\u{f02d}"
case bookmark = "\u{f02e}"
case bookmarkO = "\u{f097}"
case braille = "\u{f2a1}"
case briefcase = "\u{f0b1}"
case btc = "\u{f15a}"
case bug = "\u{f188}"
case building = "\u{f1ad}"
case buildingO = "\u{f0f7}"
case bullhorn = "\u{f0a1}"
case bullseye = "\u{f140}"
case bus = "\u{f207}"
case buysellads = "\u{f20d}"
case cab = "\u{f1ba}A"
case calculator = "\u{f1ec}"
case calendar = "\u{f073}"
case calendarCheckO = "\u{f274}"
case calendarMinusO = "\u{f272}"
case calendarO = "\u{f133}"
case calendarPlusO = "\u{f271}"
case calendarTimesO = "\u{f273}"
case camera = "\u{f030}"
case cameraRetro = "\u{f083}"
case car = "\u{f1b9}"
case caretDown = "\u{f0d7}"
case caretLeft = "\u{f0d9}"
case caretRight = "\u{f0da}"
case caretSquareODown = "\u{f150}"
case caretSquareOLeft = "\u{f191}"
case caretSquareORight = "\u{f152}"
case caretSquareOUp = "\u{f151}"
case caretUp = "\u{f0d8}"
case cartArrowDown = "\u{f218}"
case cartPlus = "\u{f217}"
case cc = "\u{f20a}"
case ccAmex = "\u{f1f3}"
case ccDinersClub = "\u{f24c}"
case ccDiscover = "\u{f1f2}"
case ccJCB = "\u{f24b}"
case ccMasterCard = "\u{f1f1}"
case ccPaypal = "\u{f1f4}"
case ccStripe = "\u{f1f5}"
case ccVisa = "\u{f1f0}"
case certificate = "\u{f0a3}"
case chain = "\u{f0c1}A"
case chainBroken = "\u{f127}"
case check = "\u{f00c}"
case checkCircle = "\u{f058}"
case checkCircleO = "\u{f05d}"
case checkSquare = "\u{f14a}"
case checkSquareO = "\u{f046}"
case chevronCircleDown = "\u{f13a}"
case chevronCircleLeft = "\u{f137}"
case chevronCircleRight = "\u{f138}"
case chevronCircleUp = "\u{f139}"
case chevronDown = "\u{f078}"
case chevronLeft = "\u{f053}"
case chevronRight = "\u{f054}"
case chevronUp = "\u{f077}"
case child = "\u{f1ae}"
case chrome = "\u{f268}"
case circle = "\u{f111}"
case circleO = "\u{f10c}"
case circleONotch = "\u{f1ce}"
case circleThin = "\u{f1db}"
case clipboard = "\u{f0ea}"
case clockO = "\u{f017}"
case clone = "\u{f24d}"
case close = "\u{f00d}A"
case cloud = "\u{f0c2}"
case cloudDownload = "\u{f0ed}"
case cloudUpload = "\u{f0ee}"
case cny = "\u{f157}A"
case code = "\u{f121}"
case codeFork = "\u{f126}"
case codepen = "\u{f1cb}"
case codiepie = "\u{f284}"
case coffee = "\u{f0f4}"
case cog = "\u{f013}"
case cogs = "\u{f085}"
case columns = "\u{f0db}"
case comment = "\u{f075}"
case commentO = "\u{f0e5}"
case commenting = "\u{f27a}"
case commentingO = "\u{f27b}"
case comments = "\u{f086}"
case commentsO = "\u{f0e6}"
case compass = "\u{f14e}"
case compress = "\u{f066}"
case connectdevelop = "\u{f20e}"
case contao = "\u{f26d}"
case copy = "\u{f0c5}A"
case copyright = "\u{f1f9}"
case creativeCommons = "\u{f25e}"
case creditCard = "\u{f09d}"
case creditCardAlt = "\u{f283}"
case crop = "\u{f125}"
case crosshairs = "\u{f05b}"
case css3 = "\u{f13c}"
case cube = "\u{f1b2}"
case cubes = "\u{f1b3}"
case cut = "\u{f0c4}A"
case cutlery = "\u{f0f5}"
case dashboard = "\u{f0e4}A"
case dashcube = "\u{f210}"
case database = "\u{f1c0}"
case deaf = "\u{f2a4}"
case deafness = "\u{f2a4}A"
case dedent = "\u{f03b}A"
case delicious = "\u{f1a5}"
case desktop = "\u{f108}"
case deviantart = "\u{f1bd}"
case diamond = "\u{f219}"
case digg = "\u{f1a6}"
case dollar = "\u{f155}A"
case dotCircleO = "\u{f192}"
case download = "\u{f019}"
case dribbble = "\u{f17d}"
case dropbox = "\u{f16b}"
case drupal = "\u{f1a9}"
case edge = "\u{f282}"
case edit = "\u{f044}A"
case eercast = "\u{f2da}"
case eject = "\u{f052}"
case ellipsisH = "\u{f141}"
case ellipsisV = "\u{f142}"
case empire = "\u{f1d1}"
case envelope = "\u{f0e0}"
case envelopeO = "\u{f003}"
case envelopeOpen = "\u{f2b6}"
case envelopeOpenO = "\u{f2b7}"
case envelopeSquare = "\u{f199}"
case envira = "\u{f299}"
case eraser = "\u{f12d}"
case etsy = "\u{f2d7}"
case eur = "\u{f153}"
case euro = "\u{f153}A"
case exchange = "\u{f0ec}"
case exclamation = "\u{f12a}"
case exclamationCircle = "\u{f06a}"
case exclamationTriangle = "\u{f071}"
case expand = "\u{f065}"
case expeditedSSL = "\u{f23e}"
case externalLink = "\u{f08e}"
case externalLinkSquare = "\u{f14c}"
case eye = "\u{f06e}"
case eyeSlash = "\u{f070}"
case eyedropper = "\u{f1fb}"
case fa = "\u{f2b4}A"
case facebook = "\u{f09a}"
case facebookF = "\u{f09a}A"
case facebookOfficial = "\u{f230}"
case facebookSquare = "\u{f082}"
case fastBackward = "\u{f049}"
case fastForward = "\u{f050}"
case fax = "\u{f1ac}"
case feed = "\u{f09e}A"
case female = "\u{f182}"
case fighterJet = "\u{f0fb}"
case file = "\u{f15b}"
case fileArchiveO = "\u{f1c6}"
case fileAudioO = "\u{f1c7}"
case fileCodeO = "\u{f1c9}"
case fileExcelO = "\u{f1c3}"
case fileImageO = "\u{f1c5}"
case fileMovieO = "\u{f1c8}A"
case fileO = "\u{f016}"
case filePdfO = "\u{f1c1}"
case filePhotoO = "\u{f1c5}A"
case filePictureO = "\u{f1c5}B"
case filePowerpointO = "\u{f1c4}"
case fileSoundO = "\u{f1c7}A"
case fileText = "\u{f15c}"
case fileTextO = "\u{f0f6}"
case fileVideoO = "\u{f1c8}"
case fileWordO = "\u{f1c2}"
case fileZipO = "\u{f1c6}A"
case filesO = "\u{f0c5}"
case film = "\u{f008}"
case filter = "\u{f0b0}"
case fire = "\u{f06d}"
case fireExtinguisher = "\u{f134}"
case firefox = "\u{f269}"
case firstOrder = "\u{f2b0}"
case flag = "\u{f024}"
case flagCheckered = "\u{f11e}"
case flagO = "\u{f11d}"
case flash = "\u{f0e7}A"
case flask = "\u{f0c3}"
case flickr = "\u{f16e}"
case floppyO = "\u{f0c7}"
case folder = "\u{f07b}"
case folderO = "\u{f114}"
case folderOpen = "\u{f07c}"
case folderOpenO = "\u{f115}"
case font = "\u{f031}"
case fontAwesome = "\u{f2b4}"
case fonticons = "\u{f280}"
case fortAwesome = "\u{f286}"
case forumbee = "\u{f211}"
case forward = "\u{f04e}"
case foursquare = "\u{f180}"
case freeCodeCamp = "\u{f2c5}"
case frownO = "\u{f119}"
case futbolO = "\u{f1e3}"
case gamepad = "\u{f11b}"
case gavel = "\u{f0e3}"
case gbp = "\u{f154}"
case ge = "\u{f1d1}A"
case gear = "\u{f013}A"
case gears = "\u{f085}A"
case genderless = "\u{f22d}"
case getPocket = "\u{f265}"
case gg = "\u{f260}"
case ggCircle = "\u{f261}"
case gift = "\u{f06b}"
case git = "\u{f1d3}"
case gitSquare = "\u{f1d2}"
case github = "\u{f09b}"
case githubAlt = "\u{f113}"
case githubSquare = "\u{f092}"
case gitlab = "\u{f296}"
case gittip = "\u{f184}A"
case glass = "\u{f000}"
case glide = "\u{f2a5}"
case glideG = "\u{f2a6}"
case globe = "\u{f0ac}"
case google = "\u{f1a0}"
case googlePlus = "\u{f0d5}"
case googlePlusCircle = "\u{f2b3}A"
case googlePlusOfficial = "\u{f2b3}"
case googlePlusSquare = "\u{f0d4}"
case googleWallet = "\u{f1ee}"
case graduationCap = "\u{f19d}"
case gratipay = "\u{f184}"
case grav = "\u{f2d6}"
case group = "\u{f0c0}A"
case hSquare = "\u{f0fd}"
case hackerNews = "\u{f1d4}"
case handGrabO = "\u{f255}A"
case handLizardO = "\u{f258}"
case handODown = "\u{f0a7}"
case handOLeft = "\u{f0a5}"
case handORight = "\u{f0a4}"
case handOUp = "\u{f0a6}"
case handPaperO = "\u{f256}"
case handPeaceO = "\u{f25b}"
case handPointerO = "\u{f25a}"
case handRockO = "\u{f255}"
case handScissorsO = "\u{f257}"
case handShakeO = "\u{f2b5}"
case handSpockO = "\u{f259}"
case handStopO = "\u{f256}A"
case hardOfHearing = "\u{f2a4}B"
case hashtag = "\u{f292}"
case hddO = "\u{f0a0}"
case header = "\u{f1dc}"
case headphones = "\u{f025}"
case heart = "\u{f004}"
case heartO = "\u{f08a}"
case heartbeat = "\u{f21e}"
case history = "\u{f1da}"
case home = "\u{f015}"
case hospitalO = "\u{f0f8}"
case hotel = "\u{f236}A"
case hourglass = "\u{f254}"
case hourglass1 = "\u{f251}A"
case hourglass2 = "\u{f252}A"
case hourglass3 = "\u{f253}A"
case hourglassEnd = "\u{f253}"
case hourglassHalf = "\u{f252}"
case hourglassO = "\u{f250}"
case hourglassStart = "\u{f251}"
case houzz = "\u{f27c}"
case html5 = "\u{f13b}"
case iCursor = "\u{f246}"
case idBadge = "\u{f2c1}"
case idCard = "\u{f2c2}"
case idCardO = "\u{f2c3}"
case ils = "\u{f20b}"
case image = "\u{f03e}A"
case imdb = "\u{f2d8}"
case inbox = "\u{f01c}"
case indent = "\u{f03c}"
case industry = "\u{f275}"
case info = "\u{f129}"
case infoCircle = "\u{f05a}"
case inr = "\u{f156}"
case instagram = "\u{f16d}"
case institution = "\u{f19c}B"
case internetExplorer = "\u{f26b}"
case intersex = "\u{f224}A"
case ioxhost = "\u{f208}"
case italic = "\u{f033}"
case joomla = "\u{f1aa}"
case jpy = "\u{f157}"
case jsfiddle = "\u{f1cc}"
case key = "\u{f084}"
case keyboardO = "\u{f11c}"
case krw = "\u{f159}"
case language = "\u{f1ab}"
case laptop = "\u{f109}"
case lastFM = "\u{f202}"
case lastFMSquare = "\u{f203}"
case leaf = "\u{f06c}"
case leanpub = "\u{f212}"
case legal = "\u{f0e3}A"
case lemonO = "\u{f094}"
case levelDown = "\u{f149}"
case levelUp = "\u{f148}"
case lifeBouy = "\u{f1cd}A"
case lifeBuoy = "\u{f1cd}B"
case lifeRing = "\u{f1cd}"
case lifeSaver = "\u{f1cd}C"
case lightbulbO = "\u{f0eb}"
case lineChart = "\u{f201}"
case link = "\u{f0c1}"
case linkedIn = "\u{f0e1}"
case linkedInSquare = "\u{f08c}"
case linode = "\u{f2b8}"
case linux = "\u{f17c}"
case list = "\u{f03a}"
case listAlt = "\u{f022}"
case listOL = "\u{f0cb}"
case listUL = "\u{f0ca}"
case locationArrow = "\u{f124}"
case lock = "\u{f023}"
case longArrowDown = "\u{f175}"
case longArrowLeft = "\u{f177}"
case longArrowRight = "\u{f178}"
case longArrowUp = "\u{f176}"
case lowVision = "\u{f2a8}"
case magic = "\u{f0d0}"
case magnet = "\u{f076}"
case mailForward = "\u{f064}A"
case mailReply = "\u{f112}A"
case mailReplyAll = "\u{f122}A"
case male = "\u{f183}"
case map = "\u{f279}"
case mapMarker = "\u{f041}"
case mapO = "\u{f278}"
case mapPin = "\u{f276}"
case mapSigns = "\u{f277}"
case mars = "\u{f222}"
case marsDouble = "\u{f227}"
case marsStroke = "\u{f229}"
case marsStrokeH = "\u{f22b}"
case marsStrokeV = "\u{f22a}"
case maxcdn = "\u{f136}"
case meanpath = "\u{f20c}"
case medium = "\u{f23a}"
case medkit = "\u{f0fa}"
case meetup = "\u{f2e0}"
case mehO = "\u{f11a}"
case mercury = "\u{f223}"
case microchip = "\u{f2db}"
case microphone = "\u{f130}"
case microphoneSlash = "\u{f131}"
case minus = "\u{f068}"
case minusCircle = "\u{f056}"
case minusSquare = "\u{f146}"
case minusSquareO = "\u{f147}"
case mixcloud = "\u{f289}"
case mobile = "\u{f10b}"
case mobilePhone = "\u{f10b}A"
case modx = "\u{f285}"
case money = "\u{f0d6}"
case moonO = "\u{f186}"
case mortarBoard = "\u{f19d}A"
case motorcycle = "\u{f21c}"
case mousePointer = "\u{f245}"
case music = "\u{f001}"
case navicon = "\u{f0c9}A"
case neuter = "\u{f22c}"
case newspaperO = "\u{f1ea}"
case objectGroup = "\u{f247}"
case objectUngroup = "\u{f248}"
case odnoklassniki = "\u{f263}"
case odnoklassnikiSquare = "\u{f264}"
case openCart = "\u{f23d}"
case openID = "\u{f19b}"
case opera = "\u{f26a}"
case optinMonster = "\u{f23c}"
case outdent = "\u{f03b}"
case pagelines = "\u{f18c}"
case paintBrush = "\u{f1fc}"
case paperPlane = "\u{f1d8}"
case paperPlaneO = "\u{f1d9}"
case paperclip = "\u{f0c6}"
case paragraph = "\u{f1dd}"
case paste = "\u{f0ea}A"
case pause = "\u{f04c}"
case pauseCircle = "\u{f28b}"
case pauseCircleO = "\u{f28c}"
case paw = "\u{f1b0}"
case paypal = "\u{f1ed}"
case pencil = "\u{f040}"
case pencilSquare = "\u{f14b}"
case pencilSquareO = "\u{f044}"
case percent = "\u{f295}"
case phone = "\u{f095}"
case phoneSquare = "\u{f098}"
case photo = "\u{f03e}B"
case pictureO = "\u{f03e}"
case pieChart = "\u{f200}"
case piedPiper = "\u{f2ae}"
case piedPiperAlt = "\u{f1a8}"
case piedPiperPp = "\u{f1a7}"
case pinterest = "\u{f0d2}"
case pinterestP = "\u{f231}"
case pinterestSquare = "\u{f0d3}"
case plane = "\u{f072}"
case play = "\u{f04b}"
case playCircle = "\u{f144}"
case playCircleO = "\u{f01d}"
case plug = "\u{f1e6}"
case plus = "\u{f067}"
case plusCircle = "\u{f055}"
case plusSquare = "\u{f0fe}"
case plusSquareO = "\u{f196}"
case podcast = "\u{f2ce}"
case powerOff = "\u{f011}"
case print = "\u{f02f}"
case productHunt = "\u{f288}"
case puzzlePiece = "\u{f12e}"
case qq = "\u{f1d6}"
case qrcode = "\u{f029}"
case quora = "\u{f2c4}"
case question = "\u{f128}"
case questionCircle = "\u{f059}"
case questionCircleO = "\u{f29c}"
case quoteLeft = "\u{f10d}"
case quoteRight = "\u{f10e}"
case ra = "\u{f1d0}A"
case random = "\u{f074}"
case ravelry = "\u{f2d9}"
case rebel = "\u{f1d0}"
case recycle = "\u{f1b8}"
case reddit = "\u{f1a1}"
case redditAlien = "\u{f281}"
case redditSquare = "\u{f1a2}"
case refresh = "\u{f021}"
case registered = "\u{f25d}"
case remove = "\u{f00d}B"
case renren = "\u{f18b}"
case reorder = "\u{f0c9}B"
case `repeat` = "\u{f01e}"
case reply = "\u{f112}"
case replyAll = "\u{f122}"
case resistance = "\u{f1d0}B"
case retweet = "\u{f079}"
case rmb = "\u{f157}B"
case road = "\u{f018}"
case rocket = "\u{f135}"
case rotateLeft = "\u{f0e2}A"
case rotateRight = "\u{f01e}A"
case rouble = "\u{f158}A"
case rss = "\u{f09e}"
case rssSquare = "\u{f143}"
case rub = "\u{f158}"
case ruble = "\u{f158}B"
case rupee = "\u{f156}A"
case safari = "\u{f267}"
case save = "\u{f0c7}A"
case scissors = "\u{f0c4}"
case scribd = "\u{f28a}"
case search = "\u{f002}"
case searchMinus = "\u{f010}"
case searchPlus = "\u{f00e}"
case sellsy = "\u{f213}"
case send = "\u{f1d8}A"
case sendO = "\u{f1d9}A"
case server = "\u{f233}"
case share = "\u{f064}"
case shareAlt = "\u{f1e0}"
case shareAltSquare = "\u{f1e1}"
case shareSquare = "\u{f14d}"
case shareSquareO = "\u{f045}"
case shekel = "\u{f20b}A"
case sheqel = "\u{f20b}B"
case shield = "\u{f132}"
case ship = "\u{f21a}"
case shirtsinbulk = "\u{f214}"
case shoppingBag = "\u{f290}"
case shoppingBasket = "\u{f291}"
case shoppingCart = "\u{f07a}"
case shower = "\u{f2cc}"
case signIn = "\u{f090}"
case signLanguage = "\u{f2a7}"
case signOut = "\u{f08b}"
case signal = "\u{f012}"
case signing = "\u{f2a7}A"
case simplybuilt = "\u{f215}"
case sitemap = "\u{f0e8}"
case skyatlas = "\u{f216}"
case skype = "\u{f17e}"
case slack = "\u{f198}"
case sliders = "\u{f1de}"
case slideshare = "\u{f1e7}"
case smileO = "\u{f118}"
case snapchat = "\u{f2ab}"
case snapchatGhost = "\u{f2ac}"
case snapchatSquare = "\u{f2ad}"
case snowflakeO = "\u{f2dc}"
case soccerBallO = "\u{f1e3}A"
case sort = "\u{f0dc}"
case sortAlphaAsc = "\u{f15d}"
case sortAlphaDesc = "\u{f15e}"
case sortAmountAsc = "\u{f160}"
case sortAmountDesc = "\u{f161}"
case sortAsc = "\u{f0de}"
case sortDesc = "\u{f0dd}"
case sortDown = "\u{f0dd}A"
case sortNumericAsc = "\u{f162}"
case sortNumericDesc = "\u{f163}"
case sortUp = "\u{f0de}A"
case soundCloud = "\u{f1be}"
case spaceShuttle = "\u{f197}"
case spinner = "\u{f110}"
case spoon = "\u{f1b1}"
case spotify = "\u{f1bc}"
case square = "\u{f0c8}"
case squareO = "\u{f096}"
case stackExchange = "\u{f18d}"
case stackOverflow = "\u{f16c}"
case star = "\u{f005}"
case starHalf = "\u{f089}"
case starHalfEmpty = "\u{f123}A"
case starHalfFull = "\u{f123}B"
case starHalfO = "\u{f123}"
case starO = "\u{f006}"
case steam = "\u{f1b6}"
case steamSquare = "\u{f1b7}"
case stepBackward = "\u{f048}"
case stepForward = "\u{f051}"
case stethoscope = "\u{f0f1}"
case stickyNote = "\u{f249}"
case stickyNoteO = "\u{f24a}"
case stop = "\u{f04d}"
case stopCircle = "\u{f28d}"
case stopCircleO = "\u{f28e}"
case streetView = "\u{f21d}"
case strikethrough = "\u{f0cc}"
case stumbleUpon = "\u{f1a4}"
case stumbleUponCircle = "\u{f1a3}"
case `subscript` = "\u{f12c}"
case subway = "\u{f239}"
case suitcase = "\u{f0f2}"
case sunO = "\u{f185}"
case superscript = "\u{f12b}"
case superpowers = "\u{f2dd}"
case support = "\u{f1cd}D"
case table = "\u{f0ce}"
case tablet = "\u{f10a}"
case tachometer = "\u{f0e4}"
case tag = "\u{f02b}"
case tags = "\u{f02c}"
case tasks = "\u{f0ae}"
case taxi = "\u{f1ba}"
case telegram = "\u{f2c6}"
case television = "\u{f26c}"
case tencentWeibo = "\u{f1d5}"
case terminal = "\u{f120}"
case textHeight = "\u{f034}"
case textWidth = "\u{f035}"
case th = "\u{f00a}"
case thLarge = "\u{f009}"
case thList = "\u{f00b}"
case themeisle = "\u{f2b2}"
case thermometerEmpty = "\u{f2cb}"
case thermometerFull = "\u{f2c7}"
case thermometerHalf = "\u{f2c9}"
case thermometerQuarter = "\u{f2ca}"
case thermometerThreeQuarters = "\u{f2c8}"
case thumbTack = "\u{f08d}"
case thumbsDown = "\u{f165}"
case thumbsODown = "\u{f088}"
case thumbsOUp = "\u{f087}"
case thumbsUp = "\u{f164}"
case ticket = "\u{f145}"
case times = "\u{f00d}"
case timesCircle = "\u{f057}"
case timesCircleO = "\u{f05c}"
case tint = "\u{f043}"
case toggleDown = "\u{f150}A"
case toggleLeft = "\u{f191}A"
case toggleOff = "\u{f204}"
case toggleOn = "\u{f205}"
case toggleRight = "\u{f152}A"
case toggleUp = "\u{f151}A"
case trademark = "\u{f25c}"
case train = "\u{f238}"
case transgender = "\u{f224}"
case transgenderAlt = "\u{f225}"
case trash = "\u{f1f8}"
case trashO = "\u{f014}"
case tree = "\u{f1bb}"
case trello = "\u{f181}"
case tripAdvisor = "\u{f262}"
case trophy = "\u{f091}"
case truck = "\u{f0d1}"
case `try` = "\u{f195}"
case tty = "\u{f1e4}"
case tumblr = "\u{f173}"
case tumblrSquare = "\u{f174}"
case turkishLira = "\u{f195}A"
case tv = "\u{f26c}A"
case twitch = "\u{f1e8}"
case twitter = "\u{f099}"
case twitterSquare = "\u{f081}"
case umbrella = "\u{f0e9}"
case underline = "\u{f0cd}"
case undo = "\u{f0e2}"
case universalAccess = "\u{f29a}"
case university = "\u{f19c}"
case unlink = "\u{f127}A"
case unlock = "\u{f09c}"
case unlockAlt = "\u{f13e}"
case unsorted = "\u{f0dc}A"
case upload = "\u{f093}"
case usb = "\u{f287}"
case usd = "\u{f155}"
case user = "\u{f007}"
case userO = "\u{f2c0}"
case userCircle = "\u{f2bd}"
case userCircleO = "\u{f2be}"
case userMd = "\u{f0f0}"
case userPlus = "\u{f234}"
case userSecret = "\u{f21b}"
case userTimes = "\u{f235}"
case users = "\u{f0c0}"
case venus = "\u{f221}"
case venusDouble = "\u{f226}"
case venusMars = "\u{f228}"
case viacoin = "\u{f237}"
case viadeo = "\u{f2a9}"
case viadeoSquare = "\u{f2aa}"
case videoCamera = "\u{f03d}"
case vimeo = "\u{f27d}"
case vimeoSquare = "\u{f194}"
case vine = "\u{f1ca}"
case vk = "\u{f189}"
case volumeControlPhone = "\u{f2a0}"
case volumeDown = "\u{f027}"
case volumeOff = "\u{f026}"
case volumeUp = "\u{f028}"
case warning = "\u{f071}A"
case wechat = "\u{f1d7}A"
case weibo = "\u{f18a}"
case weixin = "\u{f1d7}"
case whatsapp = "\u{f232}"
case wheelchair = "\u{f193}"
case wheelchairAlt = "\u{f29b}"
case wifi = "\u{f1eb}"
case wikipediaW = "\u{f266}"
case windowClose = "\u{f2d3}"
case windowCloseO = "\u{f2d4}"
case windowMaximize = "\u{f2d0}"
case windowMinimize = "\u{f2d1}"
case windowRestore = "\u{f2d2}"
case windows = "\u{f17a}"
case won = "\u{f159}A"
case wordpress = "\u{f19a}"
case wpbeginner = "\u{f297}"
case wpexplorer = "\u{f2de}"
case wpforms = "\u{f298}"
case wrench = "\u{f0ad}"
case xing = "\u{f168}"
case xingSquare = "\u{f169}"
case yCombinator = "\u{f23b}"
case yCombinatorSquare = "\u{f1d4}A"
case yahoo = "\u{f19e}"
case yc = "\u{f23b}A"
case ycSquare = "\u{f1d4}B"
case yelp = "\u{f1e9}"
case yen = "\u{f157}C"
case yoast = "\u{f2b1}"
case youTube = "\u{f167}"
case youTubePlay = "\u{f16a}"
case youTubeSquare = "\u{f166}"
}
}
extension UIColor {
enum ColorName: UInt32 {
case red = 0xcc3333ff
case blue = 0x336699ff
case white = 0xffffffff
case beige = 0xf7e5c5ff
case black = 0x333333ff
}
}
extension UIColor {
convenience init(named name: ColorName) {
let rgbaValue = name.rawValue
let red = CGFloat((rgbaValue >> 24) & 0xff) / 255.0
let green = CGFloat((rgbaValue >> 16) & 0xff) / 255.0
let blue = CGFloat((rgbaValue >> 8) & 0xff) / 255.0
let alpha = CGFloat((rgbaValue) & 0xff) / 255.0
self.init(red: red, green: green, blue: blue, alpha: alpha)
}
}
}
// 06. Add this code to your Labels in the view controller:
//FontAwesome Labels
self.lblUserName.text = Constants.iconLibrary.thumbsUp.rawValue
self.lblUserName.textColor = UIColor(named: .white)
self.lblUserName.font = UIFont(name: Constants.iconFont.fontAwesome.rawValue, size: CGFloat(Constants.iconSize.medium.rawValue))
// 07. Add this for Buttons:
//FontAwesome Buttons
self.btnConfirm.setTitle(Constants.iconLibrary.chevronRight.rawValue, for: .normal)
self.btnConfirm.titleLabel!.font = UIFont(name: Constants.iconFont.fontAwesome.rawValue, size: CGFloat(Constants.iconSize.medium.rawValue))
self.btnConfirm.setTitleColor(UIColor(named: .white), for: .normal)
// 08. Alternatively create two extensions, one for Labels and one for Buttons as follows:
// 08A. EXTENSION FOR UILABEL to use Font Awesome
import UIKit
extension UILabel {
// If this was in the VC, you would need:
// self.lblUserName.text = Constants.iconLibrary.envelopeO.rawValue
// self.lblUserName.textColor = UIColor(named: .black)
// self.lblUserName.font = UIFont(name: Constants.iconFont.fontAwesome.rawValue, size: CGFloat(Constants.iconSize.small.rawValue))
//Displays Icon in a Label
func displayLabelIcon(iIcon: String, iColor: UIColor, iSize: String) {
self.text = iIcon
self.textColor = iColor
//BUG name: is String, size: is CGFloat. Reduce down this code
switch iSize {
case "xsmall":
self.font = UIFont(name: Constants.iconFont.fontAwesome.rawValue, size: CGFloat(Constants.iconSize.xsmall.rawValue))
case "small":
self.font = UIFont(name: Constants.iconFont.fontAwesome.rawValue, size: CGFloat(Constants.iconSize.small.rawValue))
case "medium":
self.font = UIFont(name: Constants.iconFont.fontAwesome.rawValue, size: CGFloat(Constants.iconSize.medium.rawValue))
case "large":
self.font = UIFont(name: Constants.iconFont.fontAwesome.rawValue, size: CGFloat(Constants.iconSize.large.rawValue))
case "xlarge":
self.font = UIFont(name: Constants.iconFont.fontAwesome.rawValue, size: CGFloat(Constants.iconSize.xlarge.rawValue))
default:
self.font = UIFont(name: Constants.iconFont.fontAwesome.rawValue, size: CGFloat(Constants.iconSize.xxlarge.rawValue))
}
}
}
08B. EXTENSION FOR UIBUTTON to use Font Awesome
import UIKit
extension UIButton {
// self.btnConfirm.setTitle(Constants.iconLibrary.check.rawValue, for: .normal)
// self.btnConfirm.titleLabel!.font = UIFont(name: Constants.iconFont.fontAwesome.rawValue, size: CGFloat(Constants.iconSize.small.rawValue))
// self.btnConfirm.setTitleColor(UIColor(named: .black), for: .normal)
//Displays Icon in a Button
func displayButtonIcon(iTitle: String, iColor: UIColor, iSize: String) {
self.setTitle(iTitle, for: .normal)
self.setTitleColor(iColor, for: .normal)
//BUG name: is String, size: is CGFloat. Reduce down this code
switch iSize {
case "xsmall":
self.titleLabel!.font = UIFont(name: Constants.iconFont.fontAwesome.rawValue, size: CGFloat(Constants.iconSize.xsmall.rawValue))
case "small":
self.titleLabel!.font = UIFont(name: Constants.iconFont.fontAwesome.rawValue, size: CGFloat(Constants.iconSize.small.rawValue))
case "medium":
self.titleLabel!.font = UIFont(name: Constants.iconFont.fontAwesome.rawValue, size: CGFloat(Constants.iconSize.medium.rawValue))
case "large":
self.titleLabel!.font = UIFont(name: Constants.iconFont.fontAwesome.rawValue, size: CGFloat(Constants.iconSize.large.rawValue))
case "xlarge":
self.titleLabel!.font = UIFont(name: Constants.iconFont.fontAwesome.rawValue, size: CGFloat(Constants.iconSize.xlarge.rawValue))
default:
self.titleLabel!.font = UIFont(name: Constants.iconFont.fontAwesome.rawValue, size: CGFloat(Constants.iconSize.xxlarge.rawValue))
}
}
}
08C. IN MAIN VC
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var profileImageView: UIImageView!
@IBOutlet weak var btmImageView: UIImageView!
@IBOutlet weak var txtUserName: UITextField!
@IBOutlet weak var txtPassword: UITextField!
@IBOutlet weak var lblUserName: UILabel!
@IBOutlet weak var lblPassword: UILabel!
@IBOutlet weak var btnConfirm: RoundButton!
override func viewDidLoad() {
super.viewDidLoad()
//Circular Image (extension: xRoundImage)
profileImageView.rounded(borderWidth: 3.0, borderColor: UIColor.black.cgColor, shadowRadius: 10.0, shadowColor: UIColor.black.cgColor)
//Underline text field (extension: xTextField)
txtUserName.underlined()
txtPassword.underlined()
//FontAwesome Labels (email address) (extension: xUILabel)
self.lblUserName.displayLabelIcon (iIcon: Constants.iconLibrary.envelopeO.rawValue, iColor: UIColor(named: .black), iSize: "small")
//FontAwesome Labels (password) (extension: xUILabel)
self.lblPassword.displayLabelIcon (iIcon: Constants.iconLibrary.unlockAlt.rawValue, iColor: UIColor(named: .black), iSize: "small")
//FontAwesome Buttons (Confirm button) (extension: xUIButton)
self.btnConfirm.displayButtonIcon(iTitle: Constants.iconLibrary.check.rawValue, iColor: UIColor(named: .black), iSize: "small")
}
}