diff --git a/HealthFoodMe/HealthFoodMe/Presentation/Search/SearchScene/Cells/SearchTVC.swift b/HealthFoodMe/HealthFoodMe/Presentation/Search/SearchScene/Cells/SearchTVC.swift index ea2de5bb..3ddc4f88 100644 --- a/HealthFoodMe/HealthFoodMe/Presentation/Search/SearchScene/Cells/SearchTVC.swift +++ b/HealthFoodMe/HealthFoodMe/Presentation/Search/SearchScene/Cells/SearchTVC.swift @@ -53,12 +53,12 @@ extension SearchTVC { } searchLabel.text = data.title searchLabel.partColorChange(targetString: searchContent, textColor: .mainRed) + print(searchContent) } private func setUI() { backgroundColor = .helfmeWhite selectionStyle = .none - print(searchContent) } private func setLayout() { diff --git a/HealthFoodMe/HealthFoodMe/Presentation/Search/SearchScene/VC/SearchResultVC.swift b/HealthFoodMe/HealthFoodMe/Presentation/Search/SearchScene/VC/SearchResultVC.swift index 05bc1968..733ebc8b 100644 --- a/HealthFoodMe/HealthFoodMe/Presentation/Search/SearchScene/VC/SearchResultVC.swift +++ b/HealthFoodMe/HealthFoodMe/Presentation/Search/SearchScene/VC/SearchResultVC.swift @@ -20,6 +20,9 @@ final class SearchResultVC: UIViewController { var searchContent: String = "" weak var delegate: SearchResultVCDelegate? private var isBottom: Bool = true + var searchResultList: [SearchResultDataModel] = [] + + // MARK: - UI Components private let mapView: UIView = { let view = UIView() @@ -27,6 +30,12 @@ final class SearchResultVC: UIViewController { return view }() + private let topView: UIView = { + let view = UIView() + view.backgroundColor = .helfmeWhite + return view + }() + private lazy var searchTextField: UITextField = { let tf = UITextField() tf.leftViewMode = .always @@ -67,7 +76,7 @@ final class SearchResultVC: UIViewController { private lazy var searchResultHeaderButton: UIButton = { let btn = UIButton() btn.setImage(ImageLiterals.Search.viewMapBtn, for: .normal) - btn.setTitle("지도 뷰로 보기", for: .normal) + btn.setTitle(I18N.Search.searchMap, for: .normal) btn.setTitleColor(UIColor.helfmeGray1, for: .normal) btn.titleLabel?.font = .NotoRegular(size: 14) btn.isHidden = true @@ -86,6 +95,12 @@ final class SearchResultVC: UIViewController { tv.keyboardDismissMode = .onDrag tv.tableHeaderView = searchResultHeaderView tv.tableHeaderView?.frame.size.height = 42 + tv.layer.applyShadow(color: .black, + alpha: 0.1, + x: 0, + y: -3, + blur: 4, + spread: 0) return tv }() @@ -100,7 +115,6 @@ final class SearchResultVC: UIViewController { override func viewDidLoad() { super.viewDidLoad() - initUI() setUI() setLayout() @@ -134,8 +148,9 @@ extension SearchResultVC { extension SearchResultVC { private func initUI() { UIView.animate(withDuration: 0.2, animations: { - self.searchResultTableView.transform = CGAffineTransform(translationX: 0, y: 500) + self.searchResultTableView.transform = CGAffineTransform(translationX: 0, y: 585) }) + searchResultTableView.layer.shadowOpacity = 0.1 searchResultHeaderButton.isHidden = true searchResultLineView.isHidden = false searchResultTableView.layer.cornerRadius = 15 @@ -148,11 +163,17 @@ extension SearchResultVC { } private func setLayout() { - view.addSubviews(searchTextField, + view.addSubviews(topView, + searchTextField, lineView, mapView, searchResultTableView) + topView.snp.makeConstraints { + $0.top.leading.trailing.equalToSuperview() + $0.height.equalTo(91) + } + searchTextField.snp.makeConstraints { $0.top.equalTo(view.safeAreaLayoutGuide) $0.leading.trailing.equalToSuperview() @@ -235,12 +256,12 @@ extension SearchResultVC: UITableViewDelegate { extension SearchResultVC: UITableViewDataSource { func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { - return SearchResultDataModel.sampleSearchResultData.count + return searchResultList.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { guard let cell = tableView.dequeueReusableCell(withIdentifier: SearchResultTVC.className, for: indexPath) as? SearchResultTVC else { return UITableViewCell() } - cell.setData(data: SearchResultDataModel.sampleSearchResultData[indexPath.row]) + cell.setData(data: searchResultList[indexPath.row]) return cell } } @@ -251,13 +272,17 @@ extension SearchResultVC: UIScrollViewDelegate { func scrollViewWillBeginDragging(_ scrollView: UIScrollView) { if scrollView.contentOffset.y == 0 && isBottom { self.searchResultTableView.isScrollEnabled = false - UIView.animate(withDuration: 0.2, animations: { + UIView.animate(withDuration: 0.2, delay: 0, options: .curveLinear) { self.searchResultTableView.transform = CGAffineTransform(translationX: 0, y: 0) self.searchResultHeaderButton.isHidden = false - }) + } completion: { _ in + self.view.bringSubviewToFront(self.topView) + self.view.bringSubviewToFront(self.searchTextField) + } } isBottom = false searchResultTableView.layer.cornerRadius = 0 + searchResultTableView.layer.shadowOpacity = 0 searchResultLineView.isHidden = true searchResultTableView.isScrollEnabled = true } diff --git a/HealthFoodMe/HealthFoodMe/Presentation/Search/SearchScene/VC/SearchVC.swift b/HealthFoodMe/HealthFoodMe/Presentation/Search/SearchScene/VC/SearchVC.swift index 5d1902cc..6ec676c5 100644 --- a/HealthFoodMe/HealthFoodMe/Presentation/Search/SearchScene/VC/SearchVC.swift +++ b/HealthFoodMe/HealthFoodMe/Presentation/Search/SearchScene/VC/SearchVC.swift @@ -32,6 +32,8 @@ final class SearchVC: UIViewController { private var isEmpty: Bool = false private var searchEmptyView = SearchEmptyView() + // MARK: - UI Components + private let searchView: UIView = { let view = UIView() view.backgroundColor = .mainRed @@ -50,6 +52,7 @@ final class SearchVC: UIViewController { tf.addTarget(self, action: #selector(editingChanged(_:)), for: .editingChanged) tf.leftView = backButton tf.rightView = clearButton + tf.autocorrectionType = .no return tf }() @@ -126,7 +129,6 @@ final class SearchVC: UIViewController { override func viewDidLoad() { super.viewDidLoad() - setData() fetchData() setUI() @@ -162,7 +164,6 @@ extension SearchVC { } else { searchTextField.rightViewMode = .always isSearch() - searchTableView.reloadData() } } @@ -171,6 +172,7 @@ extension SearchVC { searchResultVC.delegate = self if let searchText = searchTextField.text { searchResultVC.searchContent = searchText + searchResultVC.searchResultList = searchResultList } navigationController?.pushViewController(searchResultVC, animated: false) }