Skip to content

Commit

Permalink
[Chore] Health-Food-Me#28 - 검색창 flow 관련 잡일
Browse files Browse the repository at this point in the history
아직 잘 작동이 안돼요 .. ^^
  • Loading branch information
0inn committed Jul 13, 2022
1 parent b56cfb7 commit a05621a
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ final class SearchResultVC: UIViewController {
tv.backgroundColor = .helfmeWhite
tv.keyboardDismissMode = .onDrag
tv.tableHeaderView = searchResultHeaderView
tv.tableHeaderView?.frame.size.height = 48
tv.tableHeaderView?.frame.size.height = 42
return tv
}()

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,13 @@ final class SearchVC: UIViewController {
return btn
}()

private lazy var resultCloseButton: UIButton = {
let btn = UIButton()
btn.setImage(ImageLiterals.Search.xIcon, for: .normal)
btn.addTarget(self, action: #selector(popToMainMapVC), for: .touchUpInside)
return btn
}()

private let lineView: UIView = {
let view = UIView()
view.backgroundColor = .helfmeLineGray
Expand Down Expand Up @@ -129,27 +136,26 @@ extension SearchVC {
@objc func didTapBackButton() {
switch searchType {
case .recent:
print("화면 전환")
navigationController?.popViewController(animated: false)
case .search:
print("화면 전환")
navigationController?.popViewController(animated: false)
case .searchResult:
isEmptyTextField()
isSearchRecent()
initTextField()
}
}

@objc func didTapClearButton() {
searchTextField.text?.removeAll()
isEmptyTextField()
isSearchRecent()
}

@objc func editingChanged(_ textField: UITextField) {
if searchTextField.isEmpty {
isEmptyTextField()
isSearchRecent()
} else {
searchTextField.rightViewMode = .always
searchTableView.tableHeaderView = nil
searchType = .search
isSearch()
}
}

Expand All @@ -161,6 +167,10 @@ extension SearchVC {
}
navigationController?.pushViewController(searchResultVC, animated: false)
}

@objc func popToMainMapVC() {
navigationController?.popViewController(animated: false)
}
}

// MARK: - Methods
Expand Down Expand Up @@ -205,6 +215,10 @@ extension SearchVC {
$0.height.width.equalTo(24)
}

resultCloseButton.snp.makeConstraints {
$0.height.width.equalTo(24)
}

lineView.snp.makeConstraints {
$0.top.equalTo(searchTextField.snp.bottom)
$0.leading.trailing.equalTo(view.safeAreaLayoutGuide)
Expand Down Expand Up @@ -259,36 +273,45 @@ extension SearchVC {
searchRecentList.insert(title, at: 0)
}

private func isEmptyTextField() {
private func isSearchRecent() {
searchTextField.rightViewMode = .never
searchTableView.tableHeaderView = searchHeaderView
resultHeaderButton.isHidden = true
searchTableView.tableHeaderView?.frame.size.height = 56
recentHeaderLabel.isHidden = false
resultHeaderButton.isHidden = true
searchType = .recent
}

private func isSearch() {
searchTextField.becomeFirstResponder()
searchTableView.tableHeaderView = nil
searchType = .search
}

private func isSearchResult() {
searchTextField.resignFirstResponder()
if let text = searchTextField.text {
addSearchRecent(title: text)
}
searchTableView.tableHeaderView = searchHeaderView
searchTableView.tableHeaderView?.frame.size.height = 42
clearButton.isHidden = true
recentHeaderLabel.isHidden = true
resultHeaderButton.isHidden = false
searchType = .searchResult
}
}

// MARK: - UITextFieldDelegate

extension SearchVC: UITextFieldDelegate {
func textFieldShouldReturn(_ textField: UITextField) -> Bool {
textField.resignFirstResponder()
if let text = textField.text {
addSearchRecent(title: text)
}
searchType = .searchResult
clearButton.isHidden = true
recentHeaderLabel.isHidden = true
resultHeaderButton.isHidden = false
searchTableView.tableHeaderView = searchHeaderView
isSearchResult()
return true
}

func textFieldDidBeginEditing(_ textField: UITextField) {
clearButton.isHidden = false
searchType = .search
searchTextField.becomeFirstResponder()
searchTableView.tableHeaderView = nil
isSearch()
}
}

Expand Down Expand Up @@ -329,9 +352,6 @@ extension SearchVC: UITableViewDataSource {
case .searchResult:
guard let cell = tableView.dequeueReusableCell(withIdentifier: SearchResultTVC.className, for: indexPath) as? SearchResultTVC else { return UITableViewCell() }
cell.selectionStyle = .none
// cell.setData(data: searchRecentList[indexPath.row])
// cell.index = indexPath.row
// cell.delegate = self
return cell
}
}
Expand Down Expand Up @@ -370,7 +390,7 @@ extension SearchVC: SearchResultVCDelegate {
if type == .search {
searchTextField.becomeFirstResponder()
} else {
isEmptyTextField()
isSearchRecent()
}
}
}
Expand Down

0 comments on commit a05621a

Please sign in to comment.