/
UIStackViewExtensions.swift
58 lines (50 loc) · 1.86 KB
/
UIStackViewExtensions.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
//
// UIStackViewExtensions.swift
// SwifterSwift-iOS
//
// Created by Benjamin Meyer on 2/18/18.
// Copyright © 2018 SwifterSwift
//
#if canImport(UIKit) && !os(watchOS)
import UIKit
// MARK: - Initializers
@available(iOS 9.0, *)
public extension UIStackView {
/// SwifterSwift: Initialize an UIStackView with an array of UIView and common parameters.
///
/// let stackView = UIStackView(arrangedSubviews: [UIView(), UIView()], axis: .vertical)
///
/// - Parameters:
/// - arrangedSubviews: The UIViews to add to the stack.
/// - axis: The axis along which the arranged views are laid out.
/// - spacing: The distance in points between the adjacent edges of the stack view’s arranged views.(default: 0.0)
/// - alignment: The alignment of the arranged subviews perpendicular to the stack view’s axis. (default: .fill)
/// - distribution: The distribution of the arranged views along the stack view’s axis.(default: .fill)
convenience init(
arrangedSubviews: [UIView],
axis: NSLayoutConstraint.Axis,
spacing: CGFloat = 0.0,
alignment: UIStackView.Alignment = .fill,
distribution: UIStackView.Distribution = .fill) {
self.init(arrangedSubviews: arrangedSubviews)
self.axis = axis
self.spacing = spacing
self.alignment = alignment
self.distribution = distribution
}
/// SwifterSwift: Adds array of views to the end of the arrangedSubviews array.
///
/// - Parameter views: views array.
func addArrangedSubviews(_ views: [UIView]) {
for view in views {
addArrangedSubview(view)
}
}
/// SwifterSwift: Removes all views in stack’s array of arranged subviews.
func removeArrangedSubviews() {
for view in arrangedSubviews {
removeArrangedSubview(view)
}
}
}
#endif