55 lines
1.9 KiB
Swift
55 lines
1.9 KiB
Swift
//
|
|
// PillView.swift
|
|
// BlockEQ
|
|
//
|
|
// Created by Satraj Bambra on 2018-03-09.
|
|
// Copyright © 2018 Satraj Bambra. All rights reserved.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
class PillView: UIView {
|
|
let viewHeight: CGFloat = 30.0
|
|
let indexWidth: CGFloat = 13.0
|
|
let indexPadding: CGFloat = 4.0
|
|
let viewPadding: CGFloat = 10.0
|
|
let verticalSpacing: CGFloat = 42.0
|
|
let horizontalSpacing: CGFloat = 8.0
|
|
|
|
init(index: String, title: String, origin: CGPoint) {
|
|
super.init(frame: CGRect(origin: origin, size: CGSize(width: 0.0, height: viewHeight)))
|
|
|
|
setupView(index: index, title: title)
|
|
}
|
|
|
|
required init?(coder aDecoder: NSCoder) {
|
|
fatalError("init(coder:) has not been implemented")
|
|
}
|
|
|
|
func setupView(index: String, title: String) {
|
|
let indexLabel = UILabel(frame: CGRect(x: viewPadding, y: 0.0, width: indexWidth, height: viewHeight))
|
|
indexLabel.text = index
|
|
indexLabel.textColor = Colors.lightGray
|
|
indexLabel.font = UIFont.systemFont(ofSize: 10, weight: .medium)
|
|
indexLabel.textAlignment = .left
|
|
|
|
addSubview(indexLabel)
|
|
|
|
let titleLabel = UILabel(frame: CGRect(x: (viewPadding + indexWidth + indexPadding), y: 0.0, width: 0, height: viewHeight))
|
|
titleLabel.text = title
|
|
titleLabel.textColor = Colors.darkGray
|
|
titleLabel.font = UIFont.systemFont(ofSize: 14, weight: .medium)
|
|
titleLabel.textAlignment = .left
|
|
let size = titleLabel.text?.size(withAttributes: [.font: titleLabel.font]) ?? .zero
|
|
titleLabel.frame.size.width = size.width
|
|
|
|
addSubview(titleLabel)
|
|
|
|
frame.size.width = size.width + (viewPadding * 2) + indexWidth + indexPadding
|
|
backgroundColor = Colors.white
|
|
layer.borderColor = Colors.lightGray.cgColor
|
|
layer.borderWidth = 1.0
|
|
layer.cornerRadius = 16.0
|
|
}
|
|
}
|