forked from zelo72/mastodon-ios
65 lines
2.0 KiB
Swift
65 lines
2.0 KiB
Swift
//
|
|
// SettingsSectionHeader.swift
|
|
// Mastodon
|
|
//
|
|
// Created by ihugo on 2021/4/8.
|
|
//
|
|
|
|
import UIKit
|
|
|
|
struct GroupedTableViewConstraints {
|
|
static let topMargin: CGFloat = 40
|
|
static let bottomMargin: CGFloat = 10
|
|
}
|
|
|
|
/// section header which supports add a custom view blelow the title
|
|
class SettingsSectionHeader: UIView {
|
|
lazy var titleLabel: UILabel = {
|
|
let label = UILabel()
|
|
label.translatesAutoresizingMaskIntoConstraints = false
|
|
label.font = .systemFont(ofSize: 13, weight: .regular)
|
|
label.textColor = Asset.Colors.Label.secondary.color
|
|
return label
|
|
}()
|
|
|
|
lazy var stackView: UIStackView = {
|
|
let view = UIStackView()
|
|
view.translatesAutoresizingMaskIntoConstraints = false
|
|
view.isLayoutMarginsRelativeArrangement = true
|
|
view.layoutMargins = UIEdgeInsets(
|
|
top: GroupedTableViewConstraints.topMargin,
|
|
left: 0,
|
|
bottom: GroupedTableViewConstraints.bottomMargin,
|
|
right: 0
|
|
)
|
|
view.axis = .vertical
|
|
return view
|
|
}()
|
|
|
|
init(frame: CGRect, customView: UIView? = nil) {
|
|
super.init(frame: frame)
|
|
|
|
backgroundColor = Asset.Colors.Background.systemGroupedBackground.color
|
|
stackView.addArrangedSubview(titleLabel)
|
|
if let view = customView {
|
|
stackView.addArrangedSubview(view)
|
|
}
|
|
|
|
addSubview(stackView)
|
|
NSLayoutConstraint.activate([
|
|
stackView.leadingAnchor.constraint(equalTo: self.readableContentGuide.leadingAnchor),
|
|
stackView.trailingAnchor.constraint(lessThanOrEqualTo: self.readableContentGuide.trailingAnchor),
|
|
stackView.bottomAnchor.constraint(equalTo: self.bottomAnchor),
|
|
stackView.topAnchor.constraint(equalTo: self.topAnchor),
|
|
])
|
|
}
|
|
|
|
required init?(coder: NSCoder) {
|
|
fatalError("init(coder:) has not been implemented")
|
|
}
|
|
|
|
func update(title: String?) {
|
|
titleLabel.text = title?.uppercased()
|
|
}
|
|
}
|