SynthReel/SynthReel/Base/View/SRNavgationTitleView.swift
2025-12-11 11:17:46 +08:00

90 lines
2.5 KiB
Swift

//
// SRNavgationTitleView.swift
// SynthReel
//
// Created by on 2025/11/25.
// Copyright © 2025 SR. All rights reserved.
//
import UIKit
import UIKit
class SRNavgationTitleView: UIView {
private let leftImageView: UIImageView = {
let imageView = UIImageView(image: UIImage(named: "闪光 1"))
imageView.contentMode = .scaleAspectFit
return imageView
}()
private let rightImageView: UIImageView = {
let imageView = UIImageView(image: UIImage(named: "闪光 1"))
imageView.contentMode = .scaleAspectFit
return imageView
}()
private let titleLabel: UILabel = {
let label = UILabel()
label.font = .font(ofSize: 18, weight: .bold).withBoldItalic()
label.textAlignment = .center
label.textColor = .white
return label
}()
// MARK: - Init
init(title: String) {
super.init(frame: .zero)
titleLabel.text = title
addSubview(leftImageView)
addSubview(titleLabel)
addSubview(rightImageView)
sizeToFit()
}
required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
// MARK: - Layout & Size
override func sizeThatFits(_ size: CGSize) -> CGSize {
let padding: CGFloat = 6
let imageW: CGFloat = 20
let height: CGFloat = 30
titleLabel.sizeToFit()
let totalWidth = imageW + padding + titleLabel.bounds.width + padding + imageW
return CGSize(width: totalWidth, height: height)
}
override func layoutSubviews() {
super.layoutSubviews()
let padding: CGFloat = 10
let imageW: CGFloat = 20
let imageH: CGFloat = 20
let height = bounds.height
//
leftImageView.frame = CGRect(x: 0,
y: (height - imageH) / 2,
width: imageW,
height: imageH)
//
let titleX = leftImageView.frame.maxX + padding
titleLabel.frame = CGRect(x: titleX,
y: 0,
width: titleLabel.bounds.width,
height: height)
//
let rightX = titleLabel.frame.maxX + padding
rightImageView.frame = CGRect(x: rightX,
y: (height - imageH) / 2,
width: imageW,
height: imageH)
}
}