SwiftExtension 0.1.3

SwiftExtension 0.1.3

TestsTested
LangLanguage SwiftSwift
License MIT
ReleasedLast Release Mar 2019
SPMSupports SPM

Maintained by Dhaval Golakiya.



  • By
  • dhvl-golakiya

SwiftExtension

CI Status Version License Platform

Simple Swift extensions for classes which are mostly used in iOS apps.

Requirements

Required Swift 2.0 or later

Installation

Install Manually

Download and drop Classes folder to your project

Install via CocoaPods

SwiftExtension is available through CocoaPods. To install it, simply add the following line to your Podfile:

pod "SwiftExtension"

Import SwiftExtension to your class

import UIKit
import SwiftExtension

##Array extension

Make Comma separated String from array

var myArray = ["New York", "London", "Paris"]
myArray.toCommaString // New York,London,Paris

Remove Specific object from Array

var myArray = ["New York", "London", "Paris"]
myArray.removeObject("London") // ["New York", "Paris"]

Chack Array contain specific object

var myArray = ["New York", "London", "Paris"]
myArray.containsObject("London") // true
myArray.containsObject("Seattle") // false

Get Index of specific object

var myArray = ["New York", "London", "Paris"]
myArray.indexOfObject("Paris") // 2

Gets the object at the specified index, if it exists.

var myArray = ["New York", "London", "Paris"]
myArray.get(1) // London

Int Extension

let number = 10
print(number.isOdd) // false
print(number.isEven) // true
print(number.isNegative) // false
print(number.isPositive) // true
print(number.toUInt) // 10
print(number.toFloat)// 10.0
print(number.toInt64) // 10
print(number.toDouble) // 10.0
print(number.toString) // 10
print(number.toCGFloat) // 10.0
print(number.digit()) // [1, 0]
print(number.digitCount) // 2
print(number.factorial()) // 3628800

NSData Extension

let data = NSData()
data.toDictionary // Convert NSData to NSDictionary
data.toJsonString // Convert NSData to NSString

NSMutableData Extension

let data = NSMutableData()
data.appendString("String") // Convert String to NSdata then append to NSMutableData

NSDate Extension

let date = NSDate()
let afterDate = NSDate(timeIntervalSinceNow: 253333)
print(date.weekDay) // 2 : Get Week day from date
print(date.weekOfMonth)// : Get Week index of month from date
print(date.weekDayName) // Monday : Get Week day name from date
print(date.monthName) // April  : Get Month name from date
print(date.month) // 4  : Get Month index from date
print(date.day) // 4  : Get Day index from date
print(date.year) // 2016  : Get Year index from date
print(date.getHourAndMinute()) // (19, 43)  : Get Hour and Minute from date
print(date.weekDaysInMonth()) // 4  : Get Total count of weeks in month from date
print(date.weeksInMonth()) // 4 : Get Total count of week days in month from date
print(date.daysInMonth()) // 30 : Get Total count of days in month from date
print(date.getTime()) // 07:43 PM : Get Time in AM / PM format
print(date.getTimeInShortFormat()) // 04 Apr  : Get Time short (i.e 12 Mar) format
print(date.getTimeInFullFormat()) // 04 Apr, 2016 :Get Time short (i.e 12 Mar, 2016) format
print(date.formateBirthDate()) // 2016-04-04  : Get Time standard (i.e 2016-03-12) format
print(date.afterDate(afterDate)) // true  : Check date is after date
print(date.beforDate(afterDate)) // false : Check date is before date
print(date.equalDate(afterDate)) // false : Check date is equal date
print(date.daysInBetweenDate(afterDate)) // 2 : Get days difference between dates
print(date.hoursInBetweenDate(afterDate)) // 70 : Get hours difference between dates
print(date.minutesInBetweenDate(afterDate)) // 4222 : Get minutes difference between dates
print(date.secondsInBetweenDate(afterDate)) // 253333 : Get seconds difference between dates
print(afterDate.getDifferenceBetweenDates()) // 2 days : 22h : 22m : 22s : Get time difference between date from today

NSDictionary Extension

let dictionary = NSDictionary(objects: ["value1", "value2"], forKeys: ["key", "secondKey"])
print(dictionary.has("key"))  //  true
print(dictionary.has("firstKey")) //  false
dictionary.toNSData // Convert NSDictionary to NSDate

String Extension

General extensions

let testString = "Simple Swift extensions ,for classes which are mostly used in iOS apps"
print(testString.trim())  // SimpleSwiftextensions,forclasseswhicharemostlyusediniOSapps
print(testString.length)  //  70
print(testString.makeArray) //  ["Simple Swift extensions ","for classes which are mostly used in iOS apps" ]
print(testString.makeArrayByWhiteSpace) //  [ Simple, Swift, extensions,",for", classes, which, are, mostly, used, in, iOS, apps ]
print(testString[5])  //  e
print(testString[5 ..< 15]) // e Swift ex
print(testString.stringSizeWith(UIFont.systemFontOfSize(16), width: 200, lineSpecing: 5)) //  (0.0, 0.0, 183.0390625, 91.375)
print(testString.stringWidth(UIFont.systemFontOfSize(16)))  //  510.4140625
print(testString.removeCharsFromEnd(15))  //  Simple Swift extensions ,for classes which are mostly u
print(testString.contains("extensions"))  //  true
print(testString.contains("Extensions"))  //  false
print(testString.containsIgnoreCase("extensions"))  //  true  

let testStringNew = "Simple Swift extensions for classes \nwhich are mostly used in iOS apps"
print(testStringNew.trimForNewLineCharacterSet()) //  Simple Swift extensions for classes  which are mostly used in iOS apps

Get Youtube video Id from Youtube url

let youtubeUrl = "https://www.youtube.com/watch?v=0wIiDnjz4X4"
print(youtubeUrl.getYoutubeID())  //  0wIiDnjz4X4

Get Phone number string from Phone numner

let phoneNumberStriing = "+91 22222-22222"
print(phoneNumberStriing.trimPhoneNumberString()) //  912222222222

String to Date

let dateString = "1995-12-15"
print(dateString.getDate()) //  1995-12-14 18:30:00 +0000

let dateAndTimeString = "2016-04-05 12:12:10"
print(dateAndTimeString.getDateAndTime()) //  2016-04-05 06:42:10 +0000

String to NSDictionary and NSDate

let jsonString
print(jsonString.toDictionary)  //  Convert String to NSDicationry
print(jsonString.toNSData())    //  Convert String to NSdate

Check string contain Regex (Regular expresion)

let imageUrl = http://www.testing.com/uploads/images/__w-200-400-600-800-1000__/9fbaa5bc4e032fb528f3f41997f660e7.jpg
print(imageUrl.matchesForRegexInText("__w-((?:-?\\d+)+)__")) // Get only image size string array ["__w-200-400-600-800-1000__"]

Path Component and Extensions

let pathString = "file.png" //  
print(pathString.lastPathComponent) //  file.png
print(pathString.pathExtension) //  png
print(pathString.stringByDeletingPathExtension) //  file
print(pathString.stringByDeletingLastPathComponent) //  ""
print(pathString.pathComponents)  //  ["file.png"]
print(pathString.stringByAppendingPathComponent("jpeg"))  //  file.png/jpeg
print(pathString.stringByAppendingPathExtension("files")) //  file.png.files
print(pathString.insertSubString(2, "new testing")) //  finew testingle.png

String to number

let numberString = "44"
print(numberString.toDouble())  //  44.0
print(numberString.toFloat()) //  44.0
print(numberString.toUInt())  //  44
print(numberString.toBool())  //  true

Email validation

let emailString = "[email protected]"
let emailStringNew = "dhvl@[email protected]"
print(emailString.isEmail)  //  true
print(emailStringNew.isEmail) //  false

URL validation

let urlString = "www.google.com"
let urlStriongNew = "www."
print(urlString.isValideUrl)  //  true
print(urlStriongNew.isValideUrl)  //  false

UIButton Extension

let button = UIButton()
button.applyCornerRadius(true)  //  Make button round
button.setBackgroundColor(UIColor.greenColor(), forState: .Selected)  //  Set background color green for selected state
button.textForAllState("Done")  //  Set title label text "Done" for all state
button.textForNormal("Done")  //  Set title label text "Done" for normal state
button.textForSelected("Done")  //  Set title label text "Done" for selected state
button.textForHighlighted("Done")  //  Set title label text "Done" for highlighted state
button.imageForAllState(UIImage(named: "done")!)  //  Set "done" image for all state
button.imageForNormal(UIImage(named: "done")!)  //  Set "done" image for normal state
button.imageForSelected(UIImage(named: "done")!)  //  Set "done" image for selected state
button.imageForHighlighted(UIImage(named: "done")!) //  Set "done" image for highlighted state
button.colorOfTitleLabelForAllState(UIColor.grayColor()) //  Set title label color grey for all state
button.colorOfTitleLabelForNormal(UIColor.grayColor()) //  Set title label color grey for normal state
button.colorOfTitleLabelForSelected(UIColor.grayColor()) // Set title label color grey for selected state
button.colorOfTitleLabelForHighlighted(UIColor.grayColor()) //  Set title label color grey for highlighted state
button.setImageBehindTextWithCenterAlignment(15, buttonWidth: 100, space: 2)  //  Set image behind text in Center alignment
button.setImageOnRightAndTitleOnLeft(15, buttonWidth: 100)  //  Set image right side and text on left side
button.setImageBehindTextWithLeftAlignment(15, buttonWidth: 100)  //  Set image behind text in left alignment

UIColor Extension

UIColor(hex: 222222, alpha: 1.0)  // Return UIColor from hext
UIColor(hexString: "222222")  //  Return UIcolor from hex string
UIColor(hexString: "222222", alpha: 1.0)  //  Return UIColor from hext string with alpha value

UIFont Extension

UIFont(fontname: "Custom Font", fontSize: 16) //  Return Custom font with font size

UIImage Extension

let image = UIImage(named : "test")
image.colorizeImage(UIColor.blackColor) // Return black color image from this image
image.tintedImage() //  Return tinted image from this image
image.croppedImage()  //  Return cropped image 
image.rotateImageToNighntyDegree() // Return 90 degree rotated image

UILabel Extension

let label = UILabel()
label.getEstimatedSize(320, height: 100)  //  Return estimated size of label
label.getEstimatedHeight()  //  Return estimated height of label
label.getEstimatedWidth() //  Return estimated width of label
label.fitHeight() //  Fit label height
label.fitWidth()  //  Fit label width
label.fitSize() //  Fit label size
label.getLinesArrayOfString() // Get line text in string array
label.getLinesArrayOfString(2)  //  Get nth line text

UIViewController

Used for tracking screen for app analysis using event_viewDidLoad method which screen shown

self.className() // Viewcontroller class name

UIView Extension

let view = UIView()
print(view.endX)  //  Get view.frame.size.width + view.frame.origin.x
print(view.endY)  //  Get view.frame.size.height + view.frame.origin.y
print(view.startX) //  Get view.frame.origin.x
print(view.startY)  //  Get view.frame.origin.y
print(view.getWidth)  // Get view's width
print(view.getHeight) //Get view's height
view.setStartX(10)  //  Set view origin.x to 10
view.setStartY(100) //  Set view origin.y to 100
view.setWidth(150)  //  Set view width 150
view.setHeight(200) //  Set view height 200
view.setCenter(75, y: 75) //  Set vew center to (75,75)
print(view.getCenter()) //  Get view center
view.setCenterX(75) //  Set view center.x to 75
print(view.getCenterX())  //  Get view center.x
view.setCenterY(75) //  Set view center.y to 75
print(view.getCenterY())  //  Get view center.y
print(view.parentViewController) // Get view's parent view controller
print(view.applyPlainShadow()) // Apply plain shadow
print(view.applyBorder()) //  Apply border
view.applyCornerRadius(10, mask: true)  //  Apply corner radius with mask endble / disable
view.addTopBorderWithColor(UIColor.redColor(), width: 2)  //  Add top border
view.addRightBorderWithColor(UIColor.redColor(), width: 2)  //  Add right border
view.addBottomBorderWithColor(UIColor.redColor(), width: 2) //  Add bottom border
view.addLeftBorderWithColor(UIColor.redColor(), width: 2) //  Add left border

Author

dhvl-golakiya, [email protected]

License

SwiftExtension is available under the MIT license. See the LICENSE file for more info.