From fe2225365ac7175858d0cd66eac8a4466bf6cdda Mon Sep 17 00:00:00 2001 From: egmoll7 Date: Mon, 30 Oct 2017 20:32:43 -0400 Subject: [PATCH] Fixes #5 and Fixes #4 --- EMAlertController.podspec | 2 +- .../EMAlertController/EMAlertController.swift | 22 +++++++++++++++++-- Readme.md | 6 +++++ 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/EMAlertController.podspec b/EMAlertController.podspec index 17f30dc..a6ab2df 100644 --- a/EMAlertController.podspec +++ b/EMAlertController.podspec @@ -1,6 +1,6 @@ Pod::Spec.new do |s| s.name = 'EMAlertController' - s.version = '1.0.0' + s.version = '1.0.1' s.summary = 'Elegant alert view controller alternative for iOS' s.description = <<-DESC diff --git a/EMAlertController/EMAlertController/EMAlertController.swift b/EMAlertController/EMAlertController/EMAlertController.swift index 37cde5a..9ce57d4 100644 --- a/EMAlertController/EMAlertController/EMAlertController.swift +++ b/EMAlertController/EMAlertController/EMAlertController.swift @@ -15,6 +15,7 @@ enum Dimension { } static let padding: CGFloat = 15.0 static let buttonHeight: CGFloat = 50.0 + static let iconHeight: CGFloat = 100.0 } open class EMAlertController: UIViewController { @@ -24,8 +25,9 @@ open class EMAlertController: UIViewController { internal var buttonStackViewHeightConstraint: NSLayoutConstraint? internal var buttonStackViewWidthConstraint: NSLayoutConstraint? internal var scrollViewHeightConstraint: NSLayoutConstraint? - internal var imageViewHeight: CGFloat = 100 + internal var imageViewHeight: CGFloat = Dimension.iconHeight internal var messageLabelHeight: CGFloat = 20 + internal var iconHeightConstraint: NSLayoutConstraint? internal lazy var backgroundView: UIView = { let bgView = UIView() @@ -107,6 +109,13 @@ open class EMAlertController: UIViewController { } set { imageView.image = newValue + guard let image = newValue else { + imageViewHeight = 0 + iconHeightConstraint?.constant = imageViewHeight + return + } + (image.size.height > CGFloat(0.0)) ? (imageViewHeight = Dimension.iconHeight) : (imageViewHeight = 0) + iconHeightConstraint?.constant = imageViewHeight } } @@ -140,6 +149,7 @@ open class EMAlertController: UIViewController { } } + /// Alert background color public var backgroundColor: UIColor? { willSet { alertView.backgroundColor = newValue @@ -158,6 +168,13 @@ open class EMAlertController: UIViewController { } } + /// Spacing between actions when presenting two actions in horizontal + public var buttonSpacing: CGFloat = 15 { + willSet { + buttonStackView.spacing = newValue + } + } + // MARK: - Initializers required public init?(coder aDecoder: NSCoder) { super.init(coder: aDecoder) @@ -243,7 +260,8 @@ extension EMAlertController { imageView.topAnchor.constraint(equalTo: alertView.topAnchor, constant: 5).isActive = true imageView.leadingAnchor.constraint(equalTo: alertView.leadingAnchor, constant: Dimension.padding).isActive = true imageView.trailingAnchor.constraint(equalTo: alertView.trailingAnchor, constant: -Dimension.padding).isActive = true - imageView.heightAnchor.constraint(equalToConstant: imageViewHeight).isActive = true + iconHeightConstraint = imageView.heightAnchor.constraint(equalToConstant: imageViewHeight) + iconHeightConstraint?.isActive = true // titleLabel Constraints titleLabel.topAnchor.constraint(equalTo: imageView.bottomAnchor, constant: 8).isActive = true diff --git a/Readme.md b/Readme.md index be239db..45b3aba 100644 --- a/Readme.md +++ b/Readme.md @@ -165,6 +165,12 @@ action.actionBackgroundColor = UIColor.red // Default color = UIColor.clear ``` +### Button Spacing (Only when two buttons are displayed in horizontal) +```swift +alert.buttonSpacing = 0 +// Default spacing = 15 +``` + ## TODO * [ ] Textfield Support * [ ] Carthage Support