| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- //
- // LNFakeNaviBar.swift
- // Lanu
- //
- // Created by OneeChan on 2026/1/15.
- //
- import Foundation
- import UIKit
- import SnapKit
- class LNFakeNaviBar: UIView {
- private(set) var backButton: UIButton?
- let actionView = UIView()
-
- private var rightMenuView: UIView?
-
- override init(frame: CGRect) {
- super.init(frame: frame)
-
- clipsToBounds = false
-
- addSubview(actionView)
- actionView.snp.makeConstraints { make in
- make.horizontalEdges.equalToSuperview()
- make.bottom.equalToSuperview()
- make.height.equalTo(UIView.navigationBarHeight)
- make.top.equalToSuperview().offset(UIView.statusBarHeight)
- }
- }
-
- @discardableResult
- func showBackButton(_ handler: (() -> Void)? = nil) -> UIButton {
- let backButton = UIButton.backButton()
- backButton.addAction(UIAction(handler: { [weak self] _ in
- guard let self else { return }
- if let handler {
- handler()
- } else {
- navigationController?.popViewController(animated: true)
- }
- }), for: .touchUpInside)
- actionView.addSubview(backButton)
- backButton.snp.makeConstraints { make in
- make.leading.equalToSuperview()
- make.centerY.equalToSuperview()
- make.width.height.equalTo(44)
- }
- self.backButton = backButton
-
- return backButton
- }
-
- func setRightMenu(_ view: UIView) {
- rightMenuView?.removeFromSuperview()
-
- actionView.addSubview(view)
- view.snp.makeConstraints { make in
- make.centerY.equalToSuperview()
- make.trailing.equalToSuperview().offset(-16)
- make.width.height.equalTo(44)
- }
- rightMenuView = view
- }
-
- required init?(coder: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
- }
|