From f1e73dcf67d6f592ccd1f9d8c072d762c18644b6 Mon Sep 17 00:00:00 2001 From: cruz Date: Tue, 23 May 2017 01:48:52 +0900 Subject: [PATCH] Add PastelLabel for Issue #12 --- Pastel/Classes/PastelLabel.swift | 70 ++++++++++++++++++++++++++++++++ Pastel/Classes/PastelPoint.swift | 34 ++++++++++++++++ Pastel/Classes/PastelView.swift | 25 ------------ 3 files changed, 104 insertions(+), 25 deletions(-) create mode 100644 Pastel/Classes/PastelLabel.swift create mode 100644 Pastel/Classes/PastelPoint.swift diff --git a/Pastel/Classes/PastelLabel.swift b/Pastel/Classes/PastelLabel.swift new file mode 100644 index 0000000..85048be --- /dev/null +++ b/Pastel/Classes/PastelLabel.swift @@ -0,0 +1,70 @@ +// +// PastelLabel.swift +// Pastel +// +// Created by Cruz on 21/05/2017. +// +// + +import UIKit + +public protocol PastelLabelable { + var text: String? { get set } + var font: UIFont? { get set } + var textAlignment: NSTextAlignment { get set } + var attributedText: NSAttributedString? { get set } +} + +open class PastelLabel: PastelView, PastelLabelable { + private let label = UILabel() + + // PastelLabelabel + open var text: String? { + didSet { + label.text = text + } + } + + open var font: UIFont? { + didSet { + label.font = font + } + } + + open var attributedText: NSAttributedString? { + didSet { + label.attributedText = attributedText + } + } + + open var textAlignment: NSTextAlignment = .center { + didSet { + label.textAlignment = textAlignment + } + } + + public override init(frame: CGRect) { + super.init(frame: frame) + setup() + } + + public required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + setup() + } + + open override func awakeFromNib() { + super.awakeFromNib() + setup() + } + + func setup() { + textAlignment = .center + mask = label + } + + open override func layoutSubviews() { + super.layoutSubviews() + label.frame = bounds + } +} diff --git a/Pastel/Classes/PastelPoint.swift b/Pastel/Classes/PastelPoint.swift new file mode 100644 index 0000000..57dc65d --- /dev/null +++ b/Pastel/Classes/PastelPoint.swift @@ -0,0 +1,34 @@ +// +// PastelPoint.swift +// Pastel +// +// Created by Cruz on 21/05/2017. +// +// + +import UIKit + +@objc +public enum PastelPoint: Int { + case left + case top + case right + case bottom + case topLeft + case topRight + case bottomLeft + case bottomRight + + var point: CGPoint { + switch self { + case .left: return CGPoint(x: 0.0, y: 0.5) + case .top: return CGPoint(x: 0.5, y: 0.0) + case .right: return CGPoint(x: 1.0, y: 0.5) + case .bottom: return CGPoint(x: 0.5, y: 1.0) + case .topLeft: return CGPoint(x: 0.0, y: 0.0) + case .topRight: return CGPoint(x: 1.0, y: 0.0) + case .bottomLeft: return CGPoint(x: 0.0, y: 1.0) + case .bottomRight: return CGPoint(x: 1.0, y: 1.0) + } + } +} diff --git a/Pastel/Classes/PastelView.swift b/Pastel/Classes/PastelView.swift index 3656d9e..bc4b088 100644 --- a/Pastel/Classes/PastelView.swift +++ b/Pastel/Classes/PastelView.swift @@ -15,31 +15,6 @@ open class PastelView: UIView { static let key = "ColorChange" } - @objc - public enum PastelPoint: Int { - case left - case top - case right - case bottom - case topLeft - case topRight - case bottomLeft - case bottomRight - - var point: CGPoint { - switch self { - case .left: return CGPoint(x: 0.0, y: 0.5) - case .top: return CGPoint(x: 0.5, y: 0.0) - case .right: return CGPoint(x: 1.0, y: 0.5) - case .bottom: return CGPoint(x: 0.5, y: 1.0) - case .topLeft: return CGPoint(x: 0.0, y: 0.0) - case .topRight: return CGPoint(x: 1.0, y: 0.0) - case .bottomLeft: return CGPoint(x: 0.0, y: 1.0) - case .bottomRight: return CGPoint(x: 1.0, y: 1.0) - } - } - } - // Custom Direction open var startPoint: CGPoint = PastelPoint.topRight.point open var endPoint: CGPoint = PastelPoint.bottomLeft.point