initial
This commit is contained in:
90
Pods/SwiftEntryKit/Source/MessageViews/EKAlertMessageView.swift
generated
Normal file
90
Pods/SwiftEntryKit/Source/MessageViews/EKAlertMessageView.swift
generated
Normal file
@@ -0,0 +1,90 @@
|
||||
//
|
||||
// EKAlertMessageView.swift
|
||||
// SwiftEntryKit
|
||||
//
|
||||
// Created by Daniel Huri on 5/5/18.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
final public class EKAlertMessageView: EKSimpleMessageView, EntryAppearanceDescriptor {
|
||||
|
||||
// MARK: Props
|
||||
var buttonBarView: EKButtonBarView!
|
||||
private var buttonsBarCompressedConstraint: NSLayoutConstraint!
|
||||
private var buttonsBarExpandedConstraint: NSLayoutConstraint!
|
||||
|
||||
// MARK: EntryAppearenceDescriptor
|
||||
|
||||
var bottomCornerRadius: CGFloat = 0 {
|
||||
didSet {
|
||||
buttonBarView.bottomCornerRadius = bottomCornerRadius
|
||||
}
|
||||
}
|
||||
|
||||
// MARK: Setup
|
||||
public init(with message: EKAlertMessage) {
|
||||
super.init(with: message.simpleMessage)
|
||||
setupButtonBarView(with: message.buttonBarContent)
|
||||
layoutContent(with: message)
|
||||
}
|
||||
|
||||
public required init?(coder aDecoder: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
private func setupButtonBarView(with content: EKProperty.ButtonBarContent) {
|
||||
buttonBarView = EKButtonBarView(with: content)
|
||||
buttonBarView.clipsToBounds = true
|
||||
addSubview(buttonBarView)
|
||||
}
|
||||
|
||||
func layoutContent(with message: EKAlertMessage) {
|
||||
switch message.imagePosition {
|
||||
case .top:
|
||||
messageContentView.verticalMargins = 16
|
||||
messageContentView.horizontalMargins = 16
|
||||
messageContentView.labelsOffset = 5
|
||||
|
||||
if let thumbImageView = thumbImageView {
|
||||
thumbImageView.layoutToSuperview(.top, offset: 20)
|
||||
thumbImageView.layoutToSuperview(.centerX)
|
||||
messageContentView.layout(.top, to: .bottom, of: thumbImageView)
|
||||
} else {
|
||||
messageContentView.layoutToSuperview(.top)
|
||||
}
|
||||
|
||||
messageContentView.layoutToSuperview(axis: .horizontally)
|
||||
buttonBarView.layout(.top, to: .bottom, of: messageContentView)
|
||||
case .left:
|
||||
messageContentView.verticalMargins = 0
|
||||
messageContentView.horizontalMargins = 0
|
||||
messageContentView.labelsOffset = 5
|
||||
|
||||
if let thumbImageView = thumbImageView {
|
||||
thumbImageView.layoutToSuperview(.top, .left, offset: 16)
|
||||
messageContentView.layout(.left, to: .right, of: thumbImageView, offset: 12)
|
||||
messageContentView.layout(to: .top, of: thumbImageView, offset: 2)
|
||||
} else {
|
||||
messageContentView.layoutToSuperview(.left, .top, offset: 16)
|
||||
}
|
||||
|
||||
messageContentView.layoutToSuperview(.right, offset: -16)
|
||||
buttonBarView.layout(.top, to: .bottom, of: messageContentView, offset: 10)
|
||||
}
|
||||
|
||||
buttonBarView.layoutToSuperview(axis: .horizontally)
|
||||
buttonBarView.layoutToSuperview(.bottom)
|
||||
buttonBarView.alpha = 0
|
||||
|
||||
if !message.buttonBarContent.content.isEmpty {
|
||||
if message.buttonBarContent.expandAnimatedly {
|
||||
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
|
||||
self.buttonBarView.expand()
|
||||
}
|
||||
} else {
|
||||
buttonBarView.expand()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user