72 lines
1.9 KiB
Swift
72 lines
1.9 KiB
Swift
|
|
//
|
|||
|
|
// VoiceSelectView.swift
|
|||
|
|
// Crush
|
|||
|
|
//
|
|||
|
|
// Created by Leon on 2025/7/20.
|
|||
|
|
//
|
|||
|
|
|
|||
|
|
/// 大块block,竖着排列:语言图标 + 文字
|
|||
|
|
class VoiceSelectView:UIView{
|
|||
|
|
|
|||
|
|
var iv: CLImageView!
|
|||
|
|
var titleLabel: UILabel!
|
|||
|
|
var topButton: UIButton!
|
|||
|
|
|
|||
|
|
var topTapBlock: (() -> Void)?
|
|||
|
|
override init(frame: CGRect) {
|
|||
|
|
super.init(frame: frame)
|
|||
|
|
setupViews()
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
required init?(coder: NSCoder) {
|
|||
|
|
fatalError("init(coder:) has not been implemented")
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
private func setupViews(){
|
|||
|
|
backgroundColor = .c.csen
|
|||
|
|
layer.cornerRadius = 16
|
|||
|
|
clipsToBounds = true
|
|||
|
|
|
|||
|
|
iv = {
|
|||
|
|
let v = CLImageView(frame: .zero)
|
|||
|
|
v.image = MWIconFont.image(fromIcon: .voice, size: CGSize(width: 24, height: 24), color: .c.ctsn)
|
|||
|
|
addSubview(v)
|
|||
|
|
v.snp.makeConstraints { make in
|
|||
|
|
make.centerX.equalToSuperview()
|
|||
|
|
make.top.equalToSuperview().offset(24)
|
|||
|
|
make.size.equalTo(CGSize(width: 24, height: 24))
|
|||
|
|
}
|
|||
|
|
return v
|
|||
|
|
}()
|
|||
|
|
|
|||
|
|
titleLabel = {
|
|||
|
|
let v = UILabel()
|
|||
|
|
v.font = .t.tbm
|
|||
|
|
v.textColor = .c.ctsn
|
|||
|
|
addSubview(v)
|
|||
|
|
v.snp.makeConstraints { make in
|
|||
|
|
make.centerX.equalToSuperview()
|
|||
|
|
make.top.equalTo(iv.snp.bottom).offset(16)
|
|||
|
|
make.bottom.equalToSuperview().offset(-24)
|
|||
|
|
}
|
|||
|
|
return v
|
|||
|
|
}()
|
|||
|
|
|
|||
|
|
titleLabel.text = "Select 1 voice from below"
|
|||
|
|
|
|||
|
|
topButton = {
|
|||
|
|
let v = UIButton()
|
|||
|
|
addSubview(v)
|
|||
|
|
v.snp.makeConstraints { make in
|
|||
|
|
make.edges.equalToSuperview()
|
|||
|
|
}
|
|||
|
|
v.addTarget(self, action: #selector(topButtonTap), for: .touchUpInside)
|
|||
|
|
return v
|
|||
|
|
}()
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
@objc private func topButtonTap(){
|
|||
|
|
topTapBlock?()
|
|||
|
|
}
|
|||
|
|
}
|