From cd810e5c78eb128e1c3af9a715a7627042385dbc Mon Sep 17 00:00:00 2001 From: Osama Bin Bashir Date: Tue, 11 Jul 2017 12:58:51 +0500 Subject: [PATCH 01/12] Add extension of UIlabel for adding line spacing with the method of name setLineSpacing --- Sources/UILabelExtensions.swift | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Sources/UILabelExtensions.swift b/Sources/UILabelExtensions.swift index 3d2ab78a..ede4cd89 100644 --- a/Sources/UILabelExtensions.swift +++ b/Sources/UILabelExtensions.swift @@ -65,6 +65,19 @@ extension UILabel { self.text = _text }, completion: nil) } + + // Set lineSpacing for UILabel + public func setLineSpacing(lineSpacing: CGFloat) { + let paragraphStyle = NSMutableParagraphStyle() + paragraphStyle.lineSpacing = 1.0 + paragraphStyle.lineHeightMultiple = lineHeight + paragraphStyle.alignment = self.textAlignment + + let attrString = NSMutableAttributedString(string: self.text!) + attrString.addAttribute(NSFontAttributeName, value: self.font, range: NSMakeRange(0, attrString.length)) + attrString.addAttribute(NSParagraphStyleAttributeName, value:paragraphStyle, range:NSMakeRange(0, attrString.length)) + self.attributedText = attrString + } } #endif From 6a55e8f28eb443e4047eae55cef9a1d002d659b0 Mon Sep 17 00:00:00 2001 From: Osama Bin Bashir Date: Tue, 11 Jul 2017 13:18:08 +0500 Subject: [PATCH 02/12] Add extension of UIlabel for adding line spacing with the method of name setLineSpacing --- Sources/UILabelExtensions.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/UILabelExtensions.swift b/Sources/UILabelExtensions.swift index ede4cd89..869c5e67 100644 --- a/Sources/UILabelExtensions.swift +++ b/Sources/UILabelExtensions.swift @@ -70,7 +70,7 @@ extension UILabel { public func setLineSpacing(lineSpacing: CGFloat) { let paragraphStyle = NSMutableParagraphStyle() paragraphStyle.lineSpacing = 1.0 - paragraphStyle.lineHeightMultiple = lineHeight + paragraphStyle.lineHeightMultiple = lineSpacing paragraphStyle.alignment = self.textAlignment let attrString = NSMutableAttributedString(string: self.text!) From f9492392fabcd790fdb423e354fa9422976b02d0 Mon Sep 17 00:00:00 2001 From: Osama Bin Bashir Date: Wed, 12 Jul 2017 17:51:17 +0500 Subject: [PATCH 03/12] Update CHANGELOG.md --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index be216679..86d2e0ae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -54,6 +54,9 @@ All notable changes to this project will be documented in this file. - `validateEmail()` in [[PR]](https://github.com/goktugyil/EZSwiftExtensions/pull/429) by *Vic-L* - `validateDigits()` in [[PR]](https://github.com/goktugyil/EZSwiftExtensions/pull/429) by *Vic-L* +12. **UILabelExtensions** + - `setLineSpacing` in [[PR]](https://github.com/goktugyil/EZSwiftExtensions/pull/438) by *osama10* + ### Deprecated/Renamed extensions 1. **UIViewController** - `public func hideKeyboardWhenTappedAround(cancelTouches: Bool = false)` in [[PR]](https://github.com/goktugyil/EZSwiftExtensions/pull/395) by *lfarah* From d4b947428db8bb67f40906164bf08aaeb3699140 Mon Sep 17 00:00:00 2001 From: Osama Bin Bashir Date: Wed, 12 Jul 2017 18:01:40 +0500 Subject: [PATCH 04/12] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 86d2e0ae..8d1bd97f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -55,7 +55,7 @@ All notable changes to this project will be documented in this file. - `validateDigits()` in [[PR]](https://github.com/goktugyil/EZSwiftExtensions/pull/429) by *Vic-L* 12. **UILabelExtensions** - - `setLineSpacing` in [[PR]](https://github.com/goktugyil/EZSwiftExtensions/pull/438) by *osama10* + - `setLineSpacing(lineSpacing : CGFloat)` in [[PR]](https://github.com/goktugyil/EZSwiftExtensions/pull/438) by *osama10* ### Deprecated/Renamed extensions 1. **UIViewController** From 2d20dac20b362d62dc9d7bbb0acb170effc2b0c0 Mon Sep 17 00:00:00 2001 From: Osama Bin Bashir Date: Thu, 13 Jul 2017 13:44:16 +0500 Subject: [PATCH 05/12] Update CHANGELOG.md --- CHANGELOG.md | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8d1bd97f..d3ebda67 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,8 @@ All notable changes to this project will be documented in this file. ## Unreleased - + **UILabelExtensions** + - `setLineSpacing(lineSpacing : CGFloat)` in [[PR]](https://github.com/goktugyil/EZSwiftExtensions/pull/438) by *osama10* ## [Release 1.10] ### New platform added. @@ -54,10 +55,7 @@ All notable changes to this project will be documented in this file. - `validateEmail()` in [[PR]](https://github.com/goktugyil/EZSwiftExtensions/pull/429) by *Vic-L* - `validateDigits()` in [[PR]](https://github.com/goktugyil/EZSwiftExtensions/pull/429) by *Vic-L* -12. **UILabelExtensions** - - `setLineSpacing(lineSpacing : CGFloat)` in [[PR]](https://github.com/goktugyil/EZSwiftExtensions/pull/438) by *osama10* - -### Deprecated/Renamed extensions + ### Deprecated/Renamed extensions 1. **UIViewController** - `public func hideKeyboardWhenTappedAround(cancelTouches: Bool = false)` in [[PR]](https://github.com/goktugyil/EZSwiftExtensions/pull/395) by *lfarah* From d59ca01c0ce850995cc9862f1a681ca60350fb07 Mon Sep 17 00:00:00 2001 From: Osama Bin Bashir Date: Fri, 25 Aug 2017 12:58:35 +0500 Subject: [PATCH 06/12] Added testForLineSpacing --- EZSwiftExtensionsTests/UILabelTests.swift | 25 +++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/EZSwiftExtensionsTests/UILabelTests.swift b/EZSwiftExtensionsTests/UILabelTests.swift index 27627103..1d493650 100644 --- a/EZSwiftExtensionsTests/UILabelTests.swift +++ b/EZSwiftExtensionsTests/UILabelTests.swift @@ -37,6 +37,31 @@ class UILabelTests: XCTestCase { XCTAssertEqual(label.text, "EZSwiftExtensions❤️") } + func testSetLineSpacing(){ + + let textForTesting = "I am testing test Set line spacing method" + var paragraphStyle : NSMutableParagraphStyle? + + let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 50)) + label.text = textForTesting + label.setLineSpacing(lineSpacing: 1.5) + + label.attributedText?.enumerateAttribute(NSParagraphStyleAttributeName , in: NSMakeRange(0, (label.attributedText?.length)!), options: [.longestEffectiveRangeNotRequired]) { value, range, isStop in + + + if let value = value { + + paragraphStyle = value as! NSMutableParagraphStyle + + } + } + + XCTAssertEqual(paragraphStyle?.lineHeightMultiple, 1.5) + + + + } + var waitExpectation: XCTestExpectation? func wait(duration: TimeInterval) { From 61f701b0df59be74b08f6bea4f557678cb812b74 Mon Sep 17 00:00:00 2001 From: Osama Bin Bashir Date: Mon, 28 Aug 2017 17:16:46 +0500 Subject: [PATCH 07/12] Removed unnecessary linespacing in testLineSpacing function --- EZSwiftExtensionsTests/UILabelTests.swift | 105 ++++++++++------------ 1 file changed, 49 insertions(+), 56 deletions(-) diff --git a/EZSwiftExtensionsTests/UILabelTests.swift b/EZSwiftExtensionsTests/UILabelTests.swift index 1d493650..213cd658 100644 --- a/EZSwiftExtensionsTests/UILabelTests.swift +++ b/EZSwiftExtensionsTests/UILabelTests.swift @@ -7,73 +7,66 @@ // #if os(iOS) || os(tvOS) - -import XCTest -@testable import EZSwiftExtensions -class UILabelTests: XCTestCase { - - func testInit() { - - let label = UILabel(x: 0, y: 0, w: 200, h: 50) - let expected = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 50)) - let label2 = UILabel(x: 0, y: 0, w: 200, h: 50, fontSize: 20) - - XCTAssertEqual(label.frame, expected.frame) - XCTAssertEqual(label2.font.pointSize, 20) - } - func testSet() { - - let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 50)) - label.set(text: "EZSwiftExtensions✅", duration: 1) - XCTAssertEqual(label.text, "EZSwiftExtensions✅") - - label.text = "" - label.set(text: "EZSwiftExtensions🚀", duration: 0) - XCTAssertEqual(label.text, "EZSwiftExtensions🚀") + import XCTest + @testable import EZSwiftExtensions + class UILabelTests: XCTestCase { - label.text = "" - label.set(text: "EZSwiftExtensions❤️", duration: 1) - XCTAssertEqual(label.text, "EZSwiftExtensions❤️") - } - - func testSetLineSpacing(){ - - let textForTesting = "I am testing test Set line spacing method" - var paragraphStyle : NSMutableParagraphStyle? + func testInit() { + + let label = UILabel(x: 0, y: 0, w: 200, h: 50) + let expected = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 50)) + let label2 = UILabel(x: 0, y: 0, w: 200, h: 50, fontSize: 20) + + XCTAssertEqual(label.frame, expected.frame) + XCTAssertEqual(label2.font.pointSize, 20) + } - let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 50)) - label.text = textForTesting - label.setLineSpacing(lineSpacing: 1.5) + func testSet() { + + let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 50)) + label.set(text: "EZSwiftExtensions✅", duration: 1) + XCTAssertEqual(label.text, "EZSwiftExtensions✅") + + label.text = "" + label.set(text: "EZSwiftExtensions🚀", duration: 0) + XCTAssertEqual(label.text, "EZSwiftExtensions🚀") + + label.text = "" + label.set(text: "EZSwiftExtensions❤️", duration: 1) + XCTAssertEqual(label.text, "EZSwiftExtensions❤️") + } - label.attributedText?.enumerateAttribute(NSParagraphStyleAttributeName , in: NSMakeRange(0, (label.attributedText?.length)!), options: [.longestEffectiveRangeNotRequired]) { value, range, isStop in + func testSetLineSpacing(){ + let textForTesting = "I am testing test Set line spacing method" + var paragraphStyle : NSMutableParagraphStyle? - if let value = value { - - paragraphStyle = value as! NSMutableParagraphStyle - + let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 50)) + label.text = textForTesting + label.setLineSpacing(lineSpacing: 1.5) + + label.attributedText?.enumerateAttribute(NSParagraphStyleAttributeName , in: NSMakeRange(0, (label.attributedText?.length)!), options: [.longestEffectiveRangeNotRequired]) { value, range, isStop in + if let value = value { + paragraphStyle = value as NSMutableParagraphStyle + } } + + XCTAssertEqual(paragraphStyle?.lineHeightMultiple, 1.5) } - XCTAssertEqual(paragraphStyle?.lineHeightMultiple, 1.5) + var waitExpectation: XCTestExpectation? - + func wait(duration: TimeInterval) { + waitExpectation = expectation(description: "wait") + Timer.scheduledTimer(timeInterval: duration, target: self, + selector: #selector(UILabelTests.onTimer), userInfo: nil, repeats: false) + waitForExpectations(timeout: duration + 3, handler: nil) + } + func onTimer() { + waitExpectation?.fulfill() + } } - var waitExpectation: XCTestExpectation? - - func wait(duration: TimeInterval) { - waitExpectation = expectation(description: "wait") - Timer.scheduledTimer(timeInterval: duration, target: self, - selector: #selector(UILabelTests.onTimer), userInfo: nil, repeats: false) - waitForExpectations(timeout: duration + 3, handler: nil) - } - - func onTimer() { - waitExpectation?.fulfill() - } -} - #endif From c00d920376307fa4d341ea5dd14037842b4ed9b6 Mon Sep 17 00:00:00 2001 From: Osama Bin Bashir Date: Wed, 30 Aug 2017 11:28:12 +0500 Subject: [PATCH 08/12] Update the UILabel test class --- EZSwiftExtensionsTests/UILabelTests.swift | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/EZSwiftExtensionsTests/UILabelTests.swift b/EZSwiftExtensionsTests/UILabelTests.swift index 13c2b86f..213cd658 100644 --- a/EZSwiftExtensionsTests/UILabelTests.swift +++ b/EZSwiftExtensionsTests/UILabelTests.swift @@ -7,24 +7,6 @@ // #if os(iOS) || os(tvOS) -<<<<<<< HEAD -======= - -import XCTest -@testable import EZSwiftExtensions -class UILabelTests: XCTestCase { - - func testInit() { - - let label = UILabel(x: 0, y: 0, w: 200, h: 50) - let expected = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 50)) - let label2 = UILabel(x: 0, y: 0, w: 200, h: 50, fontSize: 20) - - XCTAssertEqual(label.frame, expected.frame) - XCTAssertEqual(label2.font.pointSize, 20) - XCTAssertEqual(label.font.pointSize, 17) - } ->>>>>>> 638c47200b16776d978dc4598237109396915878 import XCTest @testable import EZSwiftExtensions From 277316ffbb2da327a4dc73a3fc7e944e7a6ca750 Mon Sep 17 00:00:00 2001 From: Osama Bin Bashir Date: Wed, 30 Aug 2017 11:41:40 +0500 Subject: [PATCH 09/12] Update CHANGELOG.md --- CHANGELOG.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f3d859f5..08909b65 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,7 +9,8 @@ All notable changes to this project will be documented in this file. 1. **Double** - `**?(lhs:Double, rhs:Double)` in [[PR]](https://github.com/goktugyil/EZSwiftExtensions/pull/443) by *Khalian* - +2. **UILabel** + - `public convenience init(font: UIFont, color: UIColor, alignment: NSTextAlignment)` in [[PR]](https://github.com/goktugyil/EZSwiftExtensions/pull/441) by *icefall* ## [Release 1.10] From 13b1dcc9162bf8e81dbd552db791f823463002b0 Mon Sep 17 00:00:00 2001 From: Osama Bin Bashir Date: Wed, 30 Aug 2017 12:54:41 +0500 Subject: [PATCH 10/12] Update CHANGELOG.md --- CHANGELOG.md | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 768940dc..17b60d27 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,17 +3,14 @@ All notable changes to this project will be documented in this file. ## Unreleased - **UILabelExtensions** - - `setLineSpacing(lineSpacing : CGFloat)` in [[PR]](https://github.com/goktugyil/EZSwiftExtensions/pull/438) by *osama10* - 1. **Double** - `**?(lhs:Double, rhs:Double)` in [[PR]](https://github.com/goktugyil/EZSwiftExtensions/pull/443) by *Khalian* 2. **UILabel** - `public convenience init(font: UIFont, color: UIColor, alignment: NSTextAlignment)` in [[PR]](https://github.com/goktugyil/EZSwiftExtensions/pull/441) by *icefall* -2. **UILabel** - - `public convenience init(font: UIFont, color: UIColor, alignment: NSTextAlignment)` in [[PR]](https://github.com/goktugyil/EZSwiftExtensions/pull/441) by *icefall* +3. **UILabelExtensions** + - `setLineSpacing(lineSpacing : CGFloat)` in [[PR]](https://github.com/goktugyil/EZSwiftExtensions/pull/438) by *osama10* ## [Release 1.10] From f3047f8692a99fb5aba3956c91a4690ad5e1d9d8 Mon Sep 17 00:00:00 2001 From: Osama Bin Bashir Date: Wed, 30 Aug 2017 13:13:40 +0500 Subject: [PATCH 11/12] Update the testOfLineSpacing --- EZSwiftExtensionsTests/UILabelTests.swift | 63 +++++++++++------------ 1 file changed, 30 insertions(+), 33 deletions(-) diff --git a/EZSwiftExtensionsTests/UILabelTests.swift b/EZSwiftExtensionsTests/UILabelTests.swift index ffcae096..0a487107 100644 --- a/EZSwiftExtensionsTests/UILabelTests.swift +++ b/EZSwiftExtensionsTests/UILabelTests.swift @@ -5,7 +5,6 @@ // Created by Goktug Yilmaz on 8/25/16. // Copyright © 2016 Goktug Yilmaz. All rights reserved. // - #if os(iOS) || os(tvOS) import XCTest @@ -13,40 +12,38 @@ class UILabelTests: XCTestCase { func testInit() { + + let label = UILabel(x: 0, y: 0, w: 200, h: 50) + let expected = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 50)) + let label2 = UILabel(x: 0, y: 0, w: 200, h: 50, fontSize: 20) + + let label3 = UILabel(font: UIFont.systemFont(ofSize: 32), color: .red, alignment: .left) + + XCTAssertEqual(label.frame, expected.frame) + XCTAssertEqual(label2.font.pointSize, 20) + XCTAssertEqual(label.font.pointSize, 17) + + XCTAssertEqual(label3.font, UIFont.systemFont(ofSize: 32)) + XCTAssertEqual(label3.textColor, .red) + XCTAssertEqual(label3.textAlignment, .left) + } - let label = UILabel(x: 0, y: 0, w: 200, h: 50) - let expected = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 50)) - let label2 = UILabel(x: 0, y: 0, w: 200, h: 50, fontSize: 20) - - let label3 = UILabel(font: UIFont.systemFont(ofSize: 32), color: .red, alignment: .left) - - XCTAssertEqual(label.frame, expected.frame) - XCTAssertEqual(label2.font.pointSize, 20) - XCTAssertEqual(label.font.pointSize, 17) - - XCTAssertEqual(label3.font, UIFont.systemFont(ofSize: 32)) - XCTAssertEqual(label3.textColor, .red) - XCTAssertEqual(label3.textAlignment, .left) - } - - - func testSet() { + + let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 50)) + label.set(text: "EZSwiftExtensions✅", duration: 1) + XCTAssertEqual(label.text, "EZSwiftExtensions✅") + + label.text = "" + label.set(text: "EZSwiftExtensions🚀", duration: 0) + XCTAssertEqual(label.text, "EZSwiftExtensions🚀") + + label.text = "" + label.set(text: "EZSwiftExtensions❤️", duration: 1) + XCTAssertEqual(label.text, "EZSwiftExtensions❤️") + } - let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 50)) - label.set(text: "EZSwiftExtensions✅", duration: 1) - XCTAssertEqual(label.text, "EZSwiftExtensions✅") - - label.text = "" - label.set(text: "EZSwiftExtensions🚀", duration: 0) - XCTAssertEqual(label.text, "EZSwiftExtensions🚀") - - label.text = "" - label.set(text: "EZSwiftExtensions❤️", duration: 1) - XCTAssertEqual(label.text, "EZSwiftExtensions❤️") -} - - func testSetLineSpacing(){ + func testSetLineSpacing(){ let textForTesting = "I am testing test Set line spacing method" var paragraphStyle : NSMutableParagraphStyle? @@ -57,7 +54,7 @@ label.attributedText?.enumerateAttribute(NSParagraphStyleAttributeName , in: NSMakeRange(0, (label.attributedText?.length)!), options: [.longestEffectiveRangeNotRequired]) { value, range, isStop in if let value = value { - paragraphStyle = value as NSMutableParagraphStyle + paragraphStyle = value as! NSMutableParagraphStyle } } From e736d020cb9be171318c6d8cfb6b9a798ab7bb00 Mon Sep 17 00:00:00 2001 From: Osama Bin Bashir Date: Wed, 30 Aug 2017 13:41:52 +0500 Subject: [PATCH 12/12] Rebased --- EZSwiftExtensionsTests/UILabelTests.swift | 2 -- 1 file changed, 2 deletions(-) diff --git a/EZSwiftExtensionsTests/UILabelTests.swift b/EZSwiftExtensionsTests/UILabelTests.swift index 0a487107..9235c9ea 100644 --- a/EZSwiftExtensionsTests/UILabelTests.swift +++ b/EZSwiftExtensionsTests/UILabelTests.swift @@ -44,7 +44,6 @@ } func testSetLineSpacing(){ - let textForTesting = "I am testing test Set line spacing method" var paragraphStyle : NSMutableParagraphStyle? @@ -57,7 +56,6 @@ paragraphStyle = value as! NSMutableParagraphStyle } } - XCTAssertEqual(paragraphStyle?.lineHeightMultiple, 1.5) }