Added UIStackView extensions to add arranged subviews and convenience initializer
Added tests for extensions Updated changelog Updated addArrangedSubviews to take varargs instead of an array Updated changelog Updated addArrangedSubviews to take varargs instead of an array Updated changelog
This commit is contained in:
parent
c6fcd96e18
commit
90e25026f7
|
@ -59,6 +59,10 @@ All notable changes to this project will be documented in this file.
|
|||
11. **UIImage**
|
||||
- `var base64: String` in [[PR]](https://github.com/goktugyil/EZSwiftExtensions/pull/363) by *lfarah*## [Version 1.8]
|
||||
|
||||
12. **UIStackView**
|
||||
- `addArrangedSubviews(_ views: UIView...)` in [[PR]](https://github.com/goktugyil/EZSwiftExtensions/pull/396) by *kirakik*
|
||||
- `init(distribution: UIStackViewDistribution, alignment: UIStackViewAlignment, axis: UILayoutConstraintAxis, spacing: CGFloat)` in [[PR]](https://github.com/goktugyil/EZSwiftExtensions/pull/396) by *kirakik*
|
||||
|
||||
### Fixed bugs
|
||||
|
||||
1. **Array:**
|
||||
|
|
|
@ -211,6 +211,10 @@
|
|||
FADFAA5D1D9D787D00CF9F7A /* FloatingPointTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FADFAA5B1D9D787D00CF9F7A /* FloatingPointTests.swift */; };
|
||||
FADFAA631D9D8C2F00CF9F7A /* FloatingPointExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = FADFAA621D9D8C2F00CF9F7A /* FloatingPointExtensions.swift */; };
|
||||
FADFAA641D9D8C3E00CF9F7A /* FloatingPointExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = FADFAA621D9D8C2F00CF9F7A /* FloatingPointExtensions.swift */; };
|
||||
FFA538CC1E75D69F0093552E /* UIStackViewExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFA538CB1E75D69F0093552E /* UIStackViewExtensions.swift */; };
|
||||
FFA538CD1E75D69F0093552E /* UIStackViewExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFA538CB1E75D69F0093552E /* UIStackViewExtensions.swift */; };
|
||||
FFA538D21E75D7150093552E /* UIStackViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFA538CE1E75D6B90093552E /* UIStackViewTests.swift */; };
|
||||
FFA538D31E75D7160093552E /* UIStackViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFA538CE1E75D6B90093552E /* UIStackViewTests.swift */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
|
@ -337,6 +341,8 @@
|
|||
E1F21CB41CB55CDA004A01A4 /* EZSwiftFunctions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EZSwiftFunctions.swift; sourceTree = "<group>"; };
|
||||
FADFAA5B1D9D787D00CF9F7A /* FloatingPointTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FloatingPointTests.swift; sourceTree = "<group>"; };
|
||||
FADFAA621D9D8C2F00CF9F7A /* FloatingPointExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FloatingPointExtensions.swift; sourceTree = "<group>"; };
|
||||
FFA538CB1E75D69F0093552E /* UIStackViewExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = UIStackViewExtensions.swift; path = ../EZSwiftExtensions/UIStackViewExtensions.swift; sourceTree = "<group>"; };
|
||||
FFA538CE1E75D6B90093552E /* UIStackViewTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIStackViewTests.swift; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
|
@ -444,6 +450,7 @@
|
|||
E10A79781D6F65AF00735549 /* UIImageViewTests.swift */,
|
||||
E10A79791D6F65AF00735549 /* UILabelTests.swift */,
|
||||
E10A797A1D6F65AF00735549 /* UISliderTests.swift */,
|
||||
FFA538CE1E75D6B90093552E /* UIStackViewTests.swift */,
|
||||
E10A797B1D6F65AF00735549 /* UIStoryboardTests.swift */,
|
||||
E10A797C1D6F65AF00735549 /* UISwitchTests.swift */,
|
||||
E10A797D1D6F65AF00735549 /* UITextFieldTests.swift */,
|
||||
|
@ -502,6 +509,7 @@
|
|||
B5DC87171C0ED34300972D0A /* UIImageViewExtensions.swift */,
|
||||
B5DC87181C0ED34300972D0A /* UILabelExtensions.swift */,
|
||||
E178781B1C8678AA00BC05AA /* UISliderExtensions.swift */,
|
||||
FFA538CB1E75D69F0093552E /* UIStackViewExtensions.swift */,
|
||||
E10A79451D6F506400735549 /* UIStoryboardExtensions.swift */,
|
||||
E1587FB11CCA420400A0B071 /* UISwitchExtensions.swift */,
|
||||
8889A85A1D20E8D500635002 /* UITextFieldExtensions.swift */,
|
||||
|
@ -747,6 +755,7 @@
|
|||
B5DC87241C0ED34300972D0A /* BoolExtensions.swift in Sources */,
|
||||
B5DC87251C0ED34300972D0A /* CGFloatExtensions.swift in Sources */,
|
||||
5A3292F01DC5BA6F0078F7F3 /* CGPointExtensions.swift in Sources */,
|
||||
FFA538CC1E75D69F0093552E /* UIStackViewExtensions.swift in Sources */,
|
||||
B5DC87261C0ED34300972D0A /* CGRectExtensions.swift in Sources */,
|
||||
B5DC87271C0ED34300972D0A /* DictionaryExtensions.swift in Sources */,
|
||||
B5DC87291C0ED34300972D0A /* IntExtensions.swift in Sources */,
|
||||
|
@ -792,6 +801,7 @@
|
|||
7605D3131C81FC180046FAC3 /* BlockButtonTests.swift in Sources */,
|
||||
7605D3121C81FC180046FAC3 /* ArrayTests.swift in Sources */,
|
||||
79AB4F2E1D03394F009183EC /* NSDictionaryExtensions.swift in Sources */,
|
||||
FFA538D21E75D7150093552E /* UIStackViewTests.swift in Sources */,
|
||||
E10A79571D6F5F3A00735549 /* BlockPanTests.swift in Sources */,
|
||||
E10A79631D6F62DF00735549 /* BlockWebViewTests.swift in Sources */,
|
||||
E10A795F1D6F62DF00735549 /* BlockSwipeTests.swift in Sources */,
|
||||
|
@ -881,6 +891,7 @@
|
|||
CD4D30D71CEEAFD900CB53BC /* UILabelExtensions.swift in Sources */,
|
||||
E10A79381D6F4E1A00735549 /* UIBarButtonItemExtensions.swift in Sources */,
|
||||
CD4D30D81CEEAFD900CB53BC /* UITextViewExtensions.swift in Sources */,
|
||||
FFA538CD1E75D69F0093552E /* UIStackViewExtensions.swift in Sources */,
|
||||
CD4D30D91CEEAFD900CB53BC /* UIViewControllerExtensions.swift in Sources */,
|
||||
CD4D30DA1CEEAFD900CB53BC /* UIViewExtensions.swift in Sources */,
|
||||
);
|
||||
|
@ -913,6 +924,7 @@
|
|||
E10A79A61D6F65AF00735549 /* UIFontTests.swift in Sources */,
|
||||
E10A79B21D6F65AF00735549 /* UISwitchTests.swift in Sources */,
|
||||
CD4D31521CEEB9EA00CB53BC /* IntTests.swift in Sources */,
|
||||
FFA538D31E75D7160093552E /* UIStackViewTests.swift in Sources */,
|
||||
E10A79B41D6F65AF00735549 /* UITextFieldTests.swift in Sources */,
|
||||
E10A79921D6F65AF00735549 /* NSObjectTests.swift in Sources */,
|
||||
E10A79961D6F65AF00735549 /* UserDefaultTests.swift in Sources */,
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
//
|
||||
// UIStackViewExtensions.swift
|
||||
// EZSwiftExtensionsExample
|
||||
//
|
||||
// Created by Kenza Iraki on 2017-03-12.
|
||||
// Copyright © 2017 Goktug Yilmaz. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
@available(iOS 9.0, *)
|
||||
extension UIStackView {
|
||||
|
||||
|
||||
/// EZSwiftExtensions: Convenience initializer in order to directly pass the distribution, alignment, axis and spacing of the stack view.
|
||||
///
|
||||
/// - Parameters:
|
||||
/// - distribution: the distribution of the stack view
|
||||
/// - alignment: the alignment of the stack view
|
||||
/// - axis: the axis (e.g. horizontal or vertical)
|
||||
/// - spacing: spacing between subviews, default is 0
|
||||
public convenience init(distribution: UIStackViewDistribution,
|
||||
alignment: UIStackViewAlignment,
|
||||
axis: UILayoutConstraintAxis,
|
||||
spacing: CGFloat = 0) {
|
||||
self.init()
|
||||
self.distribution = distribution
|
||||
self.alignment = alignment
|
||||
self.axis = axis
|
||||
self.spacing = spacing
|
||||
}
|
||||
|
||||
/// EZSwiftExtensions: Add multiple subviews at once. They will be added in order (top to bottom for a vertical stack view and left to right for a vertical stack view)
|
||||
///
|
||||
/// - Parameter views: array of views to add
|
||||
public func addArrangedSubviews(_ views: UIView...) {
|
||||
for view in views {
|
||||
self.addArrangedSubview(view)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -60,6 +60,7 @@
|
|||
E1CB3C1C1C25FFA000DF77CD /* DoubleExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1CB3C1B1C25FFA000DF77CD /* DoubleExtensions.swift */; };
|
||||
E1D7CDCE1CF8FFB3008E4C07 /* UIBarButtonItemExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = E1D7CDCD1CF8FFB3008E4C07 /* UIBarButtonItemExtensions.swift */; };
|
||||
FADFAA611D9D8BFE00CF9F7A /* FloatingPointExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = FADFAA601D9D8BFE00CF9F7A /* FloatingPointExtensions.swift */; };
|
||||
FFA538CA1E75D6700093552E /* UIStackViewExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = FFA538C91E75D6700093552E /* UIStackViewExtensions.swift */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
|
@ -118,6 +119,7 @@
|
|||
E1CB3C1B1C25FFA000DF77CD /* DoubleExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = DoubleExtensions.swift; path = Sources/DoubleExtensions.swift; sourceTree = SOURCE_ROOT; };
|
||||
E1D7CDCD1CF8FFB3008E4C07 /* UIBarButtonItemExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = UIBarButtonItemExtensions.swift; path = Sources/UIBarButtonItemExtensions.swift; sourceTree = SOURCE_ROOT; };
|
||||
FADFAA601D9D8BFE00CF9F7A /* FloatingPointExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = FloatingPointExtensions.swift; path = ../Sources/FloatingPointExtensions.swift; sourceTree = "<group>"; };
|
||||
FFA538C91E75D6700093552E /* UIStackViewExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UIStackViewExtensions.swift; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
|
@ -172,6 +174,7 @@
|
|||
E1839E191BF79974002212C6 /* UIImageViewExtensions.swift */,
|
||||
E1839E1A1BF79974002212C6 /* UILabelExtensions.swift */,
|
||||
E178781D1C8678F900BC05AA /* UISliderExtensions.swift */,
|
||||
FFA538C91E75D6700093552E /* UIStackViewExtensions.swift */,
|
||||
E10A79431D6F505900735549 /* UIStoryboardExtensions.swift */,
|
||||
E1587FAF1CCA41F400A0B071 /* UISwitchExtensions.swift */,
|
||||
E10A79361D6F4BDB00735549 /* UITextFieldExtensions.swift */,
|
||||
|
@ -311,6 +314,7 @@
|
|||
E1839E201BF79974002212C6 /* BlockLongPress.swift in Sources */,
|
||||
E17878261C86863900BC05AA /* UIWindowExtensions.swift in Sources */,
|
||||
E178781E1C8678F900BC05AA /* UISliderExtensions.swift in Sources */,
|
||||
FFA538CA1E75D6700093552E /* UIStackViewExtensions.swift in Sources */,
|
||||
E1839E381BF79974002212C6 /* UIViewControllerExtensions.swift in Sources */,
|
||||
E15484E41CA2BD00003B030E /* ErrorTypeExtensions.swift in Sources */,
|
||||
E1839E2A1BF79974002212C6 /* EZSwiftFunctions.swift in Sources */,
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
//
|
||||
// UIStackViewTests.swift
|
||||
// EZSwiftExtensions
|
||||
//
|
||||
// Created by Kenza Iraki on 2017-03-12.
|
||||
// Copyright © 2017 Goktug Yilmaz. All rights reserved.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
@testable import EZSwiftExtensions
|
||||
|
||||
class UIStackViewTests: XCTestCase {
|
||||
|
||||
var stackView: UIStackView!
|
||||
|
||||
override func setUp() {
|
||||
super.setUp()
|
||||
self.stackView = UIStackView()
|
||||
}
|
||||
|
||||
override func tearDown() {
|
||||
super.tearDown()
|
||||
}
|
||||
|
||||
func testConvenienceInit() {
|
||||
let customInitSV = UIStackView(distribution: .fill,
|
||||
alignment: .center,
|
||||
axis: .vertical,
|
||||
spacing: 5)
|
||||
XCTAssertEqual(customInitSV.distribution, .fill)
|
||||
XCTAssertEqual(customInitSV.alignment, .center)
|
||||
XCTAssertEqual(customInitSV.axis, .vertical)
|
||||
XCTAssertEqual(customInitSV.spacing, 5)
|
||||
}
|
||||
|
||||
func testAddSubviews() {
|
||||
stackView.addArrangedSubviews(UIView(), UIView(), UIView(), UIView())
|
||||
XCTAssertEqual(stackView.subviews.count, 4)
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in New Issue