From 89d64e898fa8911fe59d7a0ed1c548bef22ef3cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sedat=20G=2E=20=C3=87=C4=B0FT=C3=87=C4=B0?= Date: Thu, 4 Jun 2020 01:42:53 +0300 Subject: [PATCH] Captain Icon Set --- README.md | 1 + SwiftIconFont.xcodeproj/project.pbxproj | 6 + .../Extensions/SwiftIconFont+String.swift | 14 +- SwiftIconFont/Classes/Fonts/Captain.swift | 378 +++++++++++++++++- SwiftIconFont/Classes/SwiftIconFont.swift | 21 +- .../Classes/UI/SwiftIconTextField.swift | 2 + 6 files changed, 415 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index af80560..8405864 100644 --- a/README.md +++ b/README.md @@ -64,6 +64,7 @@ To run the example project, clone the repo, and run `pod install` from the Examp | Segoe MDL2 | sm: | [List](https://docs.microsoft.com/en-us/windows/uwp/design/style/segoe-ui-symbol-font) | | Foundation 3 | fo: | [List](https://zurb.com/playground/foundation-icon-fonts-3) | | Elegant Icon | el: | [List](https://www.elegantthemes.com/blog/resources/elegant-icon-font) | +| Captain | cp: | Please check Example project. | ## Fonts ````swift diff --git a/SwiftIconFont.xcodeproj/project.pbxproj b/SwiftIconFont.xcodeproj/project.pbxproj index 7cc3703..7c7c0eb 100644 --- a/SwiftIconFont.xcodeproj/project.pbxproj +++ b/SwiftIconFont.xcodeproj/project.pbxproj @@ -48,6 +48,7 @@ E8E47629248855DE005275C4 /* Foundation.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8E47628248855DE005275C4 /* Foundation.swift */; }; E8E4762B24885663005275C4 /* FontAwesome5.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8E4762A24885662005275C4 /* FontAwesome5.swift */; }; E8E47631248859A4005275C4 /* ElegantIcon.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8E47630248859A4005275C4 /* ElegantIcon.swift */; }; + E8E4763424885D85005275C4 /* Captain.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8E4763324885D85005275C4 /* Captain.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -110,6 +111,8 @@ E8E4762E248856CB005275C4 /* FontAwesome5Free-Solid.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "FontAwesome5Free-Solid.ttf"; sourceTree = ""; }; E8E4762F24885945005275C4 /* ElegantIcons.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = ElegantIcons.ttf; sourceTree = ""; }; E8E47630248859A4005275C4 /* ElegantIcon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ElegantIcon.swift; sourceTree = ""; }; + E8E4763224885D4C005275C4 /* captainicon.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = captainicon.ttf; sourceTree = ""; }; + E8E4763324885D85005275C4 /* Captain.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Captain.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -175,6 +178,7 @@ 1AF15B93209E196500E20C14 /* Segoe mdl2 assets.ttf */, E8E4762F24885945005275C4 /* ElegantIcons.ttf */, E8E476272488556C005275C4 /* fontcustom.ttf */, + E8E4763224885D4C005275C4 /* captainicon.ttf */, E8E4762D248856CB005275C4 /* FontAwesome5Brands-Regular.ttf */, E8E4762C248856CB005275C4 /* FontAwesome5Free-Regular.ttf */, E8E4762E248856CB005275C4 /* FontAwesome5Free-Solid.ttf */, @@ -246,6 +250,7 @@ 1AF15B95209E198D00E20C14 /* SegoeMDL2.swift */, E8E47628248855DE005275C4 /* Foundation.swift */, E8E47630248859A4005275C4 /* ElegantIcon.swift */, + E8E4763324885D85005275C4 /* Captain.swift */, ); path = Fonts; sourceTree = ""; @@ -376,6 +381,7 @@ DA8D9D531D345A4900F5E693 /* SwiftIconFont.swift in Sources */, DA639C421F62B959004810A6 /* SwiftIconStepper.swift in Sources */, DA8D9D581D345A4900F5E693 /* ThemifyIcon.swift in Sources */, + E8E4763424885D85005275C4 /* Captain.swift in Sources */, DAD008341F90D2FC00D4FC34 /* SwiftIconFont+String.swift in Sources */, DA8D9D551D345A4900F5E693 /* SwiftIconTabBarItem.swift in Sources */, DA8D9D561D345A4900F5E693 /* SwiftIconTextField.swift in Sources */, diff --git a/SwiftIconFont/Classes/Extensions/SwiftIconFont+String.swift b/SwiftIconFont/Classes/Extensions/SwiftIconFont+String.swift index 9eddd8b..2a39859 100644 --- a/SwiftIconFont/Classes/Extensions/SwiftIconFont+String.swift +++ b/SwiftIconFont/Classes/Extensions/SwiftIconFont+String.swift @@ -33,11 +33,23 @@ public extension String { return fontAwesome5Icon(code) case .foundation: return foundationIcon(code) - case .elegantIcons: + case .elegantIcon: return elegantIcon(code) + case .captain: + return captainIcon(code) } } + + + static func captainIcon(_ code: String) -> String? { + if let icon = captainIconArr[code] { + return icon + } + + return nil + } + static func elegantIcon(_ code: String) -> String? { if let icon = elegantIconArr[code] { return icon diff --git a/SwiftIconFont/Classes/Fonts/Captain.swift b/SwiftIconFont/Classes/Fonts/Captain.swift index d5dc62e..aa1045d 100644 --- a/SwiftIconFont/Classes/Fonts/Captain.swift +++ b/SwiftIconFont/Classes/Fonts/Captain.swift @@ -6,4 +6,380 @@ // Copyright © 2020 Sedat Gökbek ÇİFTÇİ. All rights reserved. // -import Foundation +public let captainIconArr: [String: String] = [ + "001":"\u{e600}", + "002":"\u{e601}", + "003":"\u{e602}", + "004":"\u{e603}", + "005":"\u{e604}", + "006":"\u{e605}", + "007":"\u{e606}", + "008":"\u{e607}", + "009":"\u{e608}", + "010":"\u{e609}", + "011":"\u{e60a}", + "012":"\u{e60b}", + "013":"\u{e60c}", + "014":"\u{e60d}", + "015":"\u{e60e}", + "016":"\u{e60f}", + "017":"\u{e610}", + "018":"\u{e611}", + "019":"\u{e612}", + "020":"\u{e613}", + "021":"\u{e614}", + "022":"\u{e615}", + "023":"\u{e616}", + "024":"\u{e617}", + "025":"\u{e618}", + "026":"\u{e619}", + "027":"\u{e61a}", + "028":"\u{e61b}", + "029":"\u{e61c}", + "030":"\u{e61d}", + "031":"\u{e61e}", + "032":"\u{e61f}", + "033":"\u{e620}", + "034":"\u{e621}", + "035":"\u{e622}", + "036":"\u{e623}", + "037":"\u{e624}", + "038":"\u{e625}", + "039":"\u{e626}", + "040":"\u{e627}", + "041":"\u{e628}", + "042":"\u{e629}", + "043":"\u{e62a}", + "044":"\u{e62b}", + "045":"\u{e62c}", + "046":"\u{e62d}", + "047":"\u{e62e}", + "048":"\u{e62f}", + "049":"\u{e630}", + "050":"\u{e631}", + "051":"\u{e632}", + "052":"\u{e633}", + "053":"\u{e634}", + "054":"\u{e635}", + "055":"\u{e636}", + "056":"\u{e637}", + "057":"\u{e638}", + "058":"\u{e639}", + "059":"\u{e63a}", + "060":"\u{e63b}", + "061":"\u{e63c}", + "062":"\u{e63d}", + "063":"\u{e63e}", + "064":"\u{e63f}", + "065":"\u{e640}", + "066":"\u{e641}", + "067":"\u{e642}", + "068":"\u{e643}", + "069":"\u{e644}", + "070":"\u{e645}", + "071":"\u{e646}", + "072":"\u{e647}", + "073":"\u{e648}", + "074":"\u{e649}", + "075":"\u{e64a}", + "076":"\u{e64b}", + "077":"\u{e64c}", + "078":"\u{e64d}", + "079":"\u{e64e}", + "080":"\u{e64f}", + "081":"\u{e650}", + "082":"\u{e651}", + "083":"\u{e652}", + "084":"\u{e653}", + "085":"\u{e654}", + "086":"\u{e655}", + "087":"\u{e656}", + "088":"\u{e657}", + "089":"\u{e658}", + "090":"\u{e659}", + "091":"\u{e65a}", + "092":"\u{e65b}", + "093":"\u{e65c}", + "094":"\u{e65d}", + "095":"\u{e65e}", + "096":"\u{e65f}", + "097":"\u{e660}", + "98": "\u{e661}", + "099":"\u{e662}", + "100":"\u{e663}", + "101":"\u{e664}", + "102":"\u{e665}", + "103":"\u{e666}", + "104":"\u{e667}", + "105":"\u{e668}", + "106":"\u{e669}", + "107":"\u{e66a}", + "108":"\u{e66b}", + "109":"\u{e66c}", + "110":"\u{e66d}", + "111":"\u{e66e}", + "112":"\u{e66f}", + "113":"\u{e670}", + "114":"\u{e671}", + "115":"\u{e672}", + "116":"\u{e673}", + "117":"\u{e674}", + "118":"\u{e675}", + "119":"\u{e676}", + "120":"\u{e677}", + "121":"\u{e678}", + "122":"\u{e679}", + "123":"\u{e67a}", + "124":"\u{e67b}", + "125":"\u{e67c}", + "126":"\u{e67d}", + "127":"\u{e67e}", + "128":"\u{e67f}", + "129":"\u{e680}", + "130":"\u{e681}", + "131":"\u{e682}", + "132":"\u{e683}", + "133":"\u{e684}", + "134":"\u{e685}", + "135":"\u{e686}", + "136":"\u{e687}", + "137":"\u{e688}", + "138":"\u{e689}", + "139":"\u{e68a}", + "140":"\u{e68b}", + "141":"\u{e68c}", + "142":"\u{e68d}", + "143":"\u{e68e}", + "144":"\u{e68f}", + "145":"\u{e690}", + "146":"\u{e691}", + "147":"\u{e692}", + "148":"\u{e693}", + "149":"\u{e694}", + "150":"\u{e695}", + "151":"\u{e696}", + "152":"\u{e697}", + "153":"\u{e698}", + "154":"\u{e699}", + "155":"\u{e69a}", + "156":"\u{e69b}", + "157":"\u{e69c}", + "158":"\u{e69d}", + "159":"\u{e69e}", + "160":"\u{e69f}", + "161":"\u{e6a0}", + "162":"\u{e6a1}", + "163":"\u{e6a2}", + "164":"\u{e6a3}", + "165":"\u{e6a4}", + "166":"\u{e6a5}", + "167":"\u{e6a6}", + "168":"\u{e6a7}", + "169":"\u{e6a8}", + "170":"\u{e6a9}", + "171":"\u{e6aa}", + "172":"\u{e6ab}", + "173":"\u{e6ac}", + "174":"\u{e6ad}", + "175":"\u{e6ae}", + "176":"\u{e6af}", + "177":"\u{e6b0}", + "178":"\u{e6b1}", + "179":"\u{e6b2}", + "180":"\u{e6b3}", + "181":"\u{e6b4}", + "182":"\u{e6b5}", + "183":"\u{e6b6}", + "184":"\u{e6b7}", + "185":"\u{e6b8}", + "186":"\u{e6b9}", + "187":"\u{e6ba}", + "188":"\u{e6bb}", + "189":"\u{e6bc}", + "190":"\u{e6bd}", + "191":"\u{e6be}", + "192":"\u{e6bf}", + "193":"\u{e6c0}", + "194":"\u{e6c1}", + "195":"\u{e6c2}", + "196":"\u{e6c3}", + "197":"\u{e6c4}", + "198":"\u{e6c5}", + "199":"\u{e6c6}", + "200":"\u{e6c7}", + "201":"\u{e6c8}", + "202":"\u{e6c9}", + "203":"\u{e6ca}", + "204":"\u{e6cb}", + "205":"\u{e6cc}", + "206":"\u{e6cd}", + "207":"\u{e6ce}", + "208":"\u{e6cf}", + "209":"\u{e6d0}", + "210":"\u{e6d1}", + "211":"\u{e6d2}", + "212":"\u{e6d3}", + "213":"\u{e6d4}", + "214":"\u{e6d5}", + "215":"\u{e6d6}", + "216":"\u{e6d7}", + "217":"\u{e6d8}", + "218":"\u{e6d9}", + "219":"\u{e6da}", + "220":"\u{e6db}", + "221":"\u{e6dc}", + "222":"\u{e6dd}", + "223":"\u{e6de}", + "224":"\u{e6df}", + "225":"\u{e6e0}", + "226":"\u{e6e1}", + "227":"\u{e6e2}", + "228":"\u{e6e3}", + "229":"\u{e6e4}", + "230":"\u{e6e5}", + "231":"\u{e6e6}", + "232":"\u{e6e7}", + "233":"\u{e6e8}", + "234":"\u{e6e9}", + "235":"\u{e6ea}", + "236":"\u{e6eb}", + "237":"\u{e6ec}", + "238":"\u{e6ed}", + "239":"\u{e6ee}", + "240":"\u{e6ef}", + "241":"\u{e6f0}", + "242":"\u{e6f1}", + "243":"\u{e6f2}", + "244":"\u{e6f3}", + "245":"\u{e6f4}", + "246":"\u{e6f5}", + "247":"\u{e6f6}", + "248":"\u{e6f7}", + "249":"\u{e6f8}", + "250":"\u{e6f9}", + "251":"\u{e6fa}", + "252":"\u{e6fb}", + "253":"\u{e6fc}", + "254":"\u{e6fd}", + "255":"\u{e6fe}", + "256":"\u{e6ff}", + "257":"\u{e700}", + "258":"\u{e701}", + "259":"\u{e702}", + "260":"\u{e703}", + "261":"\u{e704}", + "262":"\u{e705}", + "263":"\u{e706}", + "264":"\u{e707}", + "265":"\u{e708}", + "266":"\u{e709}", + "267":"\u{e70a}", + "268":"\u{e70b}", + "269":"\u{e70c}", + "270":"\u{e70d}", + "271":"\u{e70e}", + "272":"\u{e70f}", + "273":"\u{e710}", + "274":"\u{e711}", + "275":"\u{e712}", + "276":"\u{e713}", + "277":"\u{e714}", + "278":"\u{e715}", + "279":"\u{e716}", + "280":"\u{e717}", + "281":"\u{e718}", + "282":"\u{e719}", + "283":"\u{e71a}", + "284":"\u{e71b}", + "285":"\u{e71c}", + "286":"\u{e71d}", + "287":"\u{e71e}", + "288":"\u{e71f}", + "289":"\u{e720}", + "290":"\u{e721}", + "291":"\u{e722}", + "292":"\u{e723}", + "293":"\u{e724}", + "294":"\u{e725}", + "295":"\u{e726}", + "296":"\u{e727}", + "297":"\u{e728}", + "298":"\u{e729}", + "299":"\u{e72a}", + "300":"\u{e72b}", + "301":"\u{e72c}", + "302":"\u{e72d}", + "303":"\u{e72e}", + "304":"\u{e72f}", + "305":"\u{e730}", + "306":"\u{e731}", + "307":"\u{e732}", + "308":"\u{e733}", + "309":"\u{e734}", + "310":"\u{e735}", + "311":"\u{e736}", + "312":"\u{e737}", + "313":"\u{e738}", + "314":"\u{e739}", + "315":"\u{e73a}", + "316":"\u{e73b}", + "317":"\u{e73c}", + "318":"\u{e73d}", + "319":"\u{e73e}", + "320":"\u{e73f}", + "321":"\u{e740}", + "322":"\u{e741}", + "323":"\u{e742}", + "324":"\u{e743}", + "325":"\u{e744}", + "326":"\u{e745}", + "327":"\u{e746}", + "328":"\u{e747}", + "329":"\u{e748}", + "330":"\u{e749}", + "331":"\u{e74a}", + "332":"\u{e74b}", + "333":"\u{e74c}", + "334":"\u{e74d}", + "335":"\u{e74e}", + "336":"\u{e74f}", + "337":"\u{e750}", + "338":"\u{e751}", + "339":"\u{e752}", + "340":"\u{e753}", + "341":"\u{e754}", + "342":"\u{e755}", + "343":"\u{e756}", + "344":"\u{e757}", + "345":"\u{e758}", + "346":"\u{e759}", + "347":"\u{e75a}", + "348":"\u{e75b}", + "349":"\u{e75c}", + "350":"\u{e75d}", + "351":"\u{e75e}", + "352":"\u{e75f}", + "353":"\u{e760}", + "354":"\u{e761}", + "355":"\u{e762}", + "356":"\u{e763}", + "357":"\u{e764}", + "358":"\u{e765}", + "359":"\u{e766}", + "360":"\u{e767}", + "361":"\u{e768}", + "362":"\u{e769}", + "363":"\u{e76a}", + "364":"\u{e76b}", + "365":"\u{e76c}", + "366":"\u{e76d}", + "367":"\u{e76e}", + "368":"\u{e76f}", + "369":"\u{e770}", + "370":"\u{e771}", + "371":"\u{e772}", + "372":"\u{e773}", + "373":"\u{e774}", + "374":"\u{e775}", + "375":"\u{e776}" +] diff --git a/SwiftIconFont/Classes/SwiftIconFont.swift b/SwiftIconFont/Classes/SwiftIconFont.swift index b0d2e1f..dc99dd4 100644 --- a/SwiftIconFont/Classes/SwiftIconFont.swift +++ b/SwiftIconFont/Classes/SwiftIconFont.swift @@ -28,7 +28,8 @@ public enum Fonts: String { case materialIcon = "MaterialIcons-Regular" case segoeMDL2 = "Segoe mdl2 assets" case foundation = "fontcustom" - case elegantIcons = "ElegantIcons" + case elegantIcon = "ElegantIcons" + case captain = "captainicon" var fontFamilyName: String { switch self { @@ -54,8 +55,10 @@ public enum Fonts: String { return "Segoe MDL2 Assets" case .foundation: return "fontcustom" - case .elegantIcons: + case .elegantIcon: return "ElegantIcons" + case .captain: + return "captainicon" } } @@ -125,8 +128,11 @@ func getAttributedString(_ text: NSString, ofSize size: CGFloat) -> NSMutableAtt fontType = .foundation fontArr = foundationIconArr } else if fontPrefix == "el" { - fontType = .elegantIcons + fontType = .elegantIcon fontArr = elegantIconArr + } else if fontPrefix == "cp" { + fontType = .captain + fontArr = captainIconArr } if let _ = fontArr[fontCode] { @@ -201,8 +207,11 @@ func getAttributedStringForRuntimeReplace(_ text: NSString, ofSize size: CGFloat fontType = .foundation fontArr = foundationIconArr } else if fontPrefix == "el" { - fontType = .elegantIcons + fontType = .elegantIcon fontArr = elegantIconArr + } else if fontPrefix == "cp" { + fontType = .captain + fontArr = captainIconArr } @@ -287,7 +296,9 @@ public func GetFontTypeWithSelectedIcon(_ icon: String) -> Fonts { } else if fontPrefix == "fo" { fontType = .foundation } else if fontPrefix == "el" { - fontType = .elegantIcons + fontType = .elegantIcon + } else if fontPrefix == "cp" { + fontType = .captain } } diff --git a/SwiftIconFont/Classes/UI/SwiftIconTextField.swift b/SwiftIconFont/Classes/UI/SwiftIconTextField.swift index 8b5469a..5d64727 100644 --- a/SwiftIconFont/Classes/UI/SwiftIconTextField.swift +++ b/SwiftIconFont/Classes/UI/SwiftIconTextField.swift @@ -70,6 +70,8 @@ class SwiftIconTextField: UITextField { fontArr = foundationIconArr } else if fontPrefix == "el" { fontArr = elegantIconArr + } else if fontPrefix == "cp" { + fontArr = captainIconArr } if let _ = fontArr[fontCode] {