|
//
// ToastView.swift
// PaiAi
//
// Created by mac on 16/7/21.
// Copyright © 2016年 FFIB. All rights reserved.
//
import UIKit
class ToastView: UIView {
fileprivate(set) var option: ToastOption
fileprivate(set) var toastType: Toast.ToastType = .text("")
fileprivate(set) var contentView: UIView = UIView()
fileprivate var _constraints: [NSLayoutConstraint] = []
override init(frame: CGRect) {
option = .default
super.init(frame: CGRect.zero)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
convenience init(option: ToastOption, type: Toast.ToastType) {
self.init(frame: CGRect.zero)
self.option = option
switch type {
case let .text(text):
contentView = ToastTextView(text: text, option: option)
default:
break
}
initProperty()
}
private func initProperty() {
alpha = 0
layer.cornerRadius = 5
backgroundColor = option.backgroundColor
}
override func didMoveToWindow() {
switch toastType {
case .text:
constructViewHierarchyText()
activateConstraintsText()
default:
break
}
}
}
/// text
fileprivate extension ToastView {
func constructViewHierarchyText() {
addSubview(contentView)
}
func activateConstraintsText() {
activateContraintsToastView()
activateContraintsToastTextView()
}
func activateContraintsToastView() {
guard let v = superview else { return }
translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
contentView.centerXAnchor.constraint(equalTo: v.centerXAnchor),
contentView.centerYAnchor.constraint(equalTo: v.centerYAnchor)
])
}
func activateContraintsToastTextView() {
let windowSize = UIScreen.main.bounds.size
contentView.translatesAutoresizingMaskIntoConstraints = false
let textConstraints = [
contentView.topAnchor.constraint(equalTo: topAnchor, constant: 6),
contentView.bottomAnchor.constraint(equalTo: bottomAnchor, constant: -6),
contentView.leadingAnchor.constraint(equalTo: leadingAnchor, constant: 6),
contentView.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -6),
contentView.widthAnchor.constraint(lessThanOrEqualToConstant: windowSize.width - 40)
]
NSLayoutConstraint.activate(textConstraints)
_constraints += textConstraints
}
}
|