MoviaBox/Thimra/Class/Home/Controller/SPSearchViewController.swift
2025-04-21 14:30:28 +08:00

139 lines
3.6 KiB
Swift

//
// SPSearchViewController.swift
// Thimra
//
// Created by on 2025/4/17.
//
import UIKit
class SPSearchViewController: SPViewController {
private lazy var backButton: UIButton = {
let button = UIButton(type: .custom)
button.setImage(UIImage(named: "arrow_left_icon_01"), for: .normal)
button.addTarget(self, action: #selector(handleBack), for: .touchUpInside)
return button
}()
private lazy var searchInputView: SPSearchInputView = {
let view = SPSearchInputView()
view.textField.delegate = self
view.textDidChange = { [weak self] text in
self?.textDidChange(text: text)
}
return view
}()
///
private lazy var homeView: SPSearchHomeView = {
let view = SPSearchHomeView()
return view
}()
///
private lazy var associativeView: SPSearchAssociativeView = {
let view = SPSearchAssociativeView()
view.isHidden = true
return view
}()
///
private lazy var resultView: SPSearchResultView = {
let view = SPSearchResultView()
view.isHidden = true
return view
}()
override func viewDidLoad() {
super.viewDidLoad()
_setupUI()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
self.navigationController?.setNavigationBarHidden(true, animated: true)
}
}
extension SPSearchViewController {
private func _setupUI() {
view.addSubview(backButton)
view.addSubview(searchInputView)
view.addSubview(homeView)
view.addSubview(resultView)
view.addSubview(associativeView)
backButton.snp.makeConstraints { make in
make.left.equalToSuperview().offset(5)
make.centerY.equalTo(searchInputView)
make.width.height.equalTo(37)
}
searchInputView.snp.makeConstraints { make in
make.right.equalToSuperview().offset(-15)
make.top.equalToSuperview().offset(kSPStatusbarHeight + 10)
make.left.equalTo(backButton.snp.right).offset(5)
}
homeView.snp.makeConstraints { make in
make.left.right.bottom.equalToSuperview()
make.top.equalTo(searchInputView.snp.bottom).offset(10)
}
resultView.snp.makeConstraints { make in
make.edges.equalTo(homeView)
}
associativeView.snp.makeConstraints { make in
make.edges.equalTo(homeView)
}
}
}
//MARK: -------------- UITextFieldDelegate --------------
extension SPSearchViewController: UITextFieldDelegate {
func textFieldDidBeginEditing(_ textField: UITextField) {
spLog(message: "开始编辑")
}
func textFieldDidEndEditing(_ textField: UITextField, reason: UITextField.DidEndEditingReason) {
spLog(message: "结束编辑")
}
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
spLog(message: "点击搜索")
if let text = textField.text, text.count > 0 {
// self.requestSearch(text: text)
}
return true
}
///
func textDidChange(text: String) {
if text.count > 0 {
self.associativeView.isHidden = false
self.homeView.isHidden = true
} else {
self.associativeView.isHidden = true
self.homeView.isHidden = false
}
self.associativeView.search(text: text)
}
}
extension SPSearchViewController {
}