Nessuna descrizione

ToastView.swift 2.7KB

    // // 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 } }