// // LNVoiceWaveView.swift // Lanu // // Created by OneeChan on 2026/1/5. // import Foundation import UIKit import SnapKit class LNVoiceWaveView: UIView { var itemCount = 5 var duration = 0.17 var fillColor: UIColor = .fill var itemWidth: CGFloat = 1.7 private let stackView = UIStackView() private var itemViews: [UIView] = [] override init(frame: CGRect) { super.init(frame: frame) setupViews() } func build() { stackView.arrangedSubviews.forEach { stackView.removeArrangedSubview($0) $0.removeFromSuperview() } itemViews.removeAll() let mid: Double = Double(itemCount - 1) / 2.0 for index in 0.. some UIView { let container = UIView() container.backgroundColor = .lightGray let view = LNVoiceWaveView() view.fillColor = .red view.itemWidth = 10 container.addSubview(view) view.snp.makeConstraints { make in make.center.equalToSuperview() make.height.equalTo(100) make.width.equalTo(150) } view.build() view.onTap { view.startAnimate() } return container } func updateUIView(_ uiView: UIViewType, context: Context) { } } #Preview(body: { LNVoiceWaveViewPreview() }) #endif