forked from zelo72/mastodon-ios
86 lines
2.4 KiB
Swift
86 lines
2.4 KiB
Swift
//
|
|
// PickServerCategoryView.swift
|
|
// Mastodon
|
|
//
|
|
// Created by BradGao on 2021/2/23.
|
|
//
|
|
|
|
import UIKit
|
|
import MastodonSDK
|
|
import MastodonAsset
|
|
import MastodonLocalization
|
|
|
|
class PickServerCategoryView: UIView {
|
|
|
|
let highlightedIndicatorView: UIView = {
|
|
let view = UIView()
|
|
view.backgroundColor = Asset.Colors.Label.primary.color
|
|
return view
|
|
}()
|
|
|
|
let emojiLabel: UILabel = {
|
|
let label = UILabel()
|
|
label.textAlignment = .center
|
|
label.font = .systemFont(ofSize: 34, weight: .regular)
|
|
return label
|
|
}()
|
|
|
|
let titleLabel: UILabel = {
|
|
let label = UILabel()
|
|
label.textAlignment = .center
|
|
label.font = .systemFont(ofSize: 17, weight: .semibold)
|
|
label.textColor = Asset.Colors.Label.secondary.color
|
|
return label
|
|
}()
|
|
|
|
init() {
|
|
super.init(frame: .zero)
|
|
configure()
|
|
}
|
|
|
|
required init?(coder: NSCoder) {
|
|
super.init(coder: coder)
|
|
configure()
|
|
}
|
|
}
|
|
|
|
extension PickServerCategoryView {
|
|
|
|
private func configure() {
|
|
let container = UIStackView()
|
|
container.axis = .vertical
|
|
container.distribution = .fillProportionally
|
|
|
|
container.translatesAutoresizingMaskIntoConstraints = false
|
|
addSubview(container)
|
|
NSLayoutConstraint.activate([
|
|
container.topAnchor.constraint(equalTo: topAnchor),
|
|
container.leadingAnchor.constraint(equalTo: leadingAnchor),
|
|
container.trailingAnchor.constraint(equalTo: trailingAnchor),
|
|
container.bottomAnchor.constraint(equalTo: bottomAnchor),
|
|
])
|
|
|
|
container.addArrangedSubview(emojiLabel)
|
|
container.addArrangedSubview(titleLabel)
|
|
highlightedIndicatorView.translatesAutoresizingMaskIntoConstraints = false
|
|
container.addArrangedSubview(highlightedIndicatorView)
|
|
NSLayoutConstraint.activate([
|
|
highlightedIndicatorView.heightAnchor.constraint(equalToConstant: UIView.separatorLineHeight(of: self) * 3).priority(.required - 1),
|
|
])
|
|
titleLabel.setContentHuggingPriority(.required - 1, for: .vertical)
|
|
}
|
|
|
|
}
|
|
|
|
#if DEBUG && canImport(SwiftUI)
|
|
import SwiftUI
|
|
|
|
struct PickServerCategoryView_Previews: PreviewProvider {
|
|
static var previews: some View {
|
|
UIViewPreview {
|
|
PickServerCategoryView()
|
|
}
|
|
}
|
|
}
|
|
#endif
|