Day#24 寻找其他使用者(1)

前言

好的!开发日程进入尾声,不过开发内容还没有 (×ω×)
果然是前几天太忙没有很多进度的後果,哭哭

开启新对话

ConversationViewController

现在已经可以有mock的对话内容了,接下来想要可以新增新的对话,因此我们在conversation主画面加上一个右上角的按钮,当按下按钮时,可以进行寻找使用者的功能。

viewDidLoad

navigationItem.rightBarButtonItem = 
    UIBarButtonItem(barButtonSystemItem: .compose,
                    target: self,
                    action: #selector(didTapComposeButton))

然後,针对selector新增一个objc的方法。

@objc private func didTapComposeButton() {
    let vc = NewConversationViewController()
    let navVC = UINavigationController(rootViewController: vc)
    present(navVC, animated: true)
}

宣告一个新的view controller,在点选的时候,将新的controller显示出来。

NewConversationViewController

好的~现在我们就来实作new conversation view controller的内容~~

首先引入相关函式库

import UIKit
import JGProgressHUD
class NewConversationViewController: UIViewController {
    
    private let spinner = JGProgressHUD()

    private let searchBar: UISearchBar = {
        let searchBar = UISearchBar()
        searchBar.placeholder = "Search for users"
        return searchBar
    }()
    

在最上方加入搜寻bar,提示文字注明为搜寻使用者。

    private let tableView: UITableView = {
        let table = UITableView()
        table.isHidden = true
        table.register(UITableViewCell.self,
                       forCellReuseIdentifier: "cell")
        return table
    }()
    
    private let noResultLabel: UILabel = {
        let label = UILabel()
        label.isHidden = true
        label.text = "No result"
        label.textAlignment = .center
        label.textColor = .green
        label.font = .systemFont(ofSize: 21, weight: .medium)
        return label
    }()

当有资料时,就以table view的方式呈现,若没有的话,则以ui label说明没有相关的结果。

    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = .white
        
        navigationController?.navigationBar.topItem?.titleView = searchBar
        navigationItem.rightBarButtonItem = UIBarButtonItem(title: "Cancel",
                                                            style: .done,
                                                            target: self,
                                                            action: #selector(dismissSelf))
    }
    
    @objc private func dismissSelf() {
        dismiss(animated: true, completion: nil)
    }
}

最後我们给controller加一些设定、把search bar放入controller。
以及设定dismiss的功能。

结语

如此一来搜寻的UI就完成了! 明天有机会的话可以实作接DB的部分!
加油呜呜,行百里者半九十~

若上述内容有误或可以改进的部分,欢迎留言以及提出任何指教~
谢谢 (´・∀・`)


<<:  Google Hacking女神搜寻技法

>>:  [Day24] Array methods 阵列操作方法(2)

[Python 爬虫这样学,一定是大拇指拉!] DAY02 - 关於 Python (1)

所谓工欲善其事,必先利其器。 选择 Python 的理由又是什麽? 那我们得先从语言的特性及优缺点来...

Re: 新手让网页 act 起来: Day24 - React Hooks 之 useMemo

前言 昨天我们介绍过如何使用 React.memo 与 useCallback 来做效能优化,而 u...

Array筛选特定值

缘由: 对本科生或天资聪颖的人来说这问题真的没什麽,但对於初学者且还只有教科书程度的我,要我从一组复...

Rust-枚举(enumeration)

枚举就是列出有穷序列的型别 透过enum关键字新增了新的Browser型别在范例中列出了一个组项分别...

(Day8) 隐含转型 - 转成 Boolean & 宽松相等 vs 严格相等

前言 上一篇介绍了数字型别、字串型别的隐含转型,接下来介绍剩余的隐含转行,剩余隐含转型大约分成以下三...