// // CreateBubbleView.swift // QuickLocation // // Created by 八条 on 2026/6/26. // import UIKit import RxSwift import RxCocoa class CreateBubbleView: UIView { var disposeBag = DisposeBag() var createBubbleTiemView: CreateBubbleTiemView = CreateBubbleTiemView() var createBubbleTipsView: CreateBubbleTipsView = CreateBubbleTipsView() var createBubbleDoneView: CreateBubbleDoneView = CreateBubbleDoneView() private func setupRx() { backBtn.rx.tap.subscribe(onNext: { _ in AppRouter.shared.popOrDismiss() }).disposed(by: disposeBag) createBubbleTiemView.onNextTap = { [weak self] in guard let self = self else { return } self.navTitleLabel.text = "通知您的圈子" let hours = self.createBubbleTiemView.selectedHour.value let endDate = Calendar.current.date(byAdding: .hour, value: hours, to: Date()) ?? Date() let fmt = DateFormatter() fmt.dateFormat = "HH:mm" let timeStr = fmt.string(from: endDate) let message = "\(timeStr)之前,我会一直在这个区域。如果需要我帮忙,请给我发消息。" self.createBubbleTipsView.messageLab.text = message self.createBubbleTipsView.messageText = message self.createBubbleTiemView.isHidden = true self.createBubbleTipsView.isHidden = false } } private func setupUI() { addSubview(createBubbleTiemView) addSubview(createBubbleTipsView) addSubview(createBubbleDoneView) addSubview(navBgView) addSubview(navBarView) navBarView.addSubview(navTitleLabel) navBarView.addSubview(backBtn) navBgView.layoutChain .edges(excludingEdge: .bottom) .heightToWidth(160/375) navBarView.layoutChain .edges(excludingEdge: .bottom) .height(kNaviHeight) navTitleLabel.layoutChain .top(kStatusBarHeight + 12) .centerY(backBtn) .centerX() backBtn.layoutChain .centerY(navTitleLabel) .left(15) .width(24) .height(24) createBubbleTiemView.layoutChain .topToBottomOfView(navBarView) .edges(excludingEdge: .top) createBubbleTipsView.layoutChain .topToBottomOfView(navBarView) .edges(excludingEdge: .top) createBubbleDoneView.layoutChain .topToBottomOfView(navBarView) .edges(excludingEdge: .top) } lazy var navBgView: UIImageView = { let iv = UIImageView() iv.image = UIImage(named: "Common/navBar_bg_2") iv.contentMode = .scaleAspectFill return iv }() lazy var navBarView: UIView = { let view = UIView() view.backgroundColor = .clear return view }() lazy var navTitleLabel: UILabel = { let label = UILabel() label.text = "设置气泡时间" label.font = .systemFont(ofSize: 18, weight: .medium) label.textColor = ThemeManager.shared.color.titleAuxColor label.textAlignment = .center return label }() lazy var backBtn: UIButton = { let btn = UIButton(type: .custom) btn.setImage(UIImage(named: "Common/back"), for: .normal) btn.extendEdgeInsets = UIEdgeInsets(top: 54, left: 15, bottom: 100, right: 100) return btn }() override init(frame: CGRect) { super.init(frame: .zero) backgroundColor = .white setupUI() setupRx() createBubbleTiemView.isHidden = false createBubbleTipsView.isHidden = true createBubbleDoneView.isHidden = true } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } }