任務1.負載的UIViewController形式XIB
我們可以加載一個UIViewController形式XIB代替故事板。我們可以使用以下程序:
1.創建一個UIViewcontroller。
XCode File -> New -> File -> Cocoa Touch Class -> Fill Class with your class name , subclass of with UIViewController , check Also create Xib file, language Swift -> Next - Create.
Example: ViewControllerFromXib
2.覆蓋的init()。
override init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: Bundle?)
{
super.init(nibName: "ViewControllerFromXib", bundle: Bundle.main)
}
required init?(coder aDecoder: NSCoder)
{
super.init(coder:aDecoder)
}
3.打開新創建的控制器
let controller = ViewControllerFromXib.init()
self.present(controller, animated: true, completion: nil)
在這上面的方法,我們可以從廈門國際銀行加載一個UIViewController。
任務2.創建一個實現代碼如下&它使用電池定製廈門國際銀行
1.創建一個自定義的UITableViewCell
的XCode文件填充 - >新建 - >文件 - >可可觸摸類 - >用你的單元格名稱填充類,使用TableViewCell的子類,檢查另外創建Xib文件,Swift語言 - >下一步 - 創建。
例子:CustomTableViewCell
1.註冊的UITableViewCell爲您的TableView。
override func viewDidLoad() {
super.viewDidLoad()
self.title = "Item"
self.tableView.register(UINib(nibName: "CustomTableViewCell", bundle:Bundle.main), forCellReuseIdentifier: "CustomTableViewCell");
}
2.實施UITableViewDataSource到你的ViewController
extension ViewControllerFromXib:UITableViewDataSource {
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 3;
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "CustomTableViewCell", for: indexPath) as! CustomTableViewCell
return cell
}
}
2.實施的UITableViewDelegate到你的ViewController。
extension ViewControllerFromXib:UITableViewDelegate {
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat{
return UITableViewAutomaticDimension;
}
}
你創建的東西看起來像一個表視圖而不是一個表視圖控制器。這就是他們與衆不同的原因。另外,沒有什麼能夠阻止你創建另一個故事板。隨着項目的發展,這也非常普遍。 –
嗨雨辰,這是爲了表格視圖而不是表格視圖控制器。爲什麼人們在他們的項目中有更多的故事板,爲什麼它是有用的和常見的? –
故事板是基於xml的,當有多個人在同一時間工作時,它可以很容易地導致衝突。衝突很難解決。另外,故事板渲染速度很慢,難以處理,因爲它變得更復雜。所以,讓它們變小會更容易。 –