139 lines
3.6 KiB
Swift
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 {
|
|
|
|
|
|
}
|