第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

帶有多個(gè)Swift的自定義單元格的UITableview

帶有多個(gè)Swift的自定義單元格的UITableview

我想將UITableview與其他自定義tableViewCells一起使用。我的三個(gè)單元格是這樣的:?jiǎn)卧?:應(yīng)具有圖片和標(biāo)簽。Cell2:應(yīng)有兩個(gè)標(biāo)簽。Cell3:應(yīng)該有一個(gè)dayPicker。我不想為單元格編碼。如何在Swift中進(jìn)行管理。我必須為每個(gè)單元格編寫自己的類嗎?我可以使用一個(gè)tableviewController嗎?如何填充不同單元格中的數(shù)據(jù)?我想生成一個(gè)tableView,就像iOS設(shè)備的聯(lián)系人應(yīng)用程序一樣。
查看完整描述

3 回答

?
忽然笑

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超5個(gè)贊

Swift 3.0 +最少代碼更新

基本概念: 使用動(dòng)態(tài)單元原型創(chuàng)建表視圖。分配標(biāo)識(shí)符并為每個(gè)單元原型創(chuàng)建自定義表格視圖單元類。在表視圖的委托方法中啟動(dòng)并顯示自定義單元格。

1.在情節(jié)提要板上創(chuàng)建單元格

將tableView拖到您的視圖控制器,向其添加原型單元,然后將UI元素拖放至您的表視圖單元,并根據(jù)需要適當(dāng)添加約束。

http://img1.sycdn.imooc.com//5d9825a900013b2f06140369.jpg

2.創(chuàng)建自定義UITableViewCell類


將以下代碼添加到您的項(xiàng)目。我把它放在視圖控制器類之上。


class FirstTableCell: UITableViewCell {

}


class SecondTableCell: UITableViewCell {

}


class ThirdTableCell: UITableViewCell {   

}

3.將自定義類和標(biāo)識(shí)符分配給單元原型


對(duì)于情節(jié)提要中的每個(gè)單元原型,分配從步驟2創(chuàng)建的自定義類,然后輸入唯一的標(biāo)識(shí)符。

http://img1.sycdn.imooc.com//5d9825e40001837500800048.jpg


4.將UI元素連接到快速代碼


Control拖動(dòng)表視圖并連接到視圖控制器類。控件拖動(dòng)在步驟1中添加到單元原型的UI元素,并連接到相應(yīng)的表視圖單元類。


http://img1.sycdn.imooc.com//5d9825ed0001247f00320033.jpg

5.添加代碼以查看控制器并控制表視圖


使您的視圖控制器符合表視圖委托


class YourViewController: UIViewController, UITableViewDataSource, UITableViewDelegate

在中viewDidLoad,設(shè)置表視圖的委托和數(shù)據(jù)源。


override func viewDidLoad() {

    super.viewDidLoad()


    self.tableView.dataSource = self

    self.tableView.delegate = self


}

最后,根據(jù)最低要求,添加兩個(gè)委托方法來(lái)控制您的表視圖。


func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    return 3

}


func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

    if indexPath.row == 0 {

        let cell = tableView.dequeueReusableCell(withIdentifier: "firstTableCell") as! FirstTableCell

        // Set up cell.label

        return cell

    } else if indexPath.row == 1 {

        let cell = tableView.dequeueReusableCell(withIdentifier: "secondTableCell") as! SecondTableCell

        // Set up cell.button

        return cell

    } else {

        let cell = tableView.dequeueReusableCell(withIdentifier: "thirdTableCell") as! ThirdTableCell

        // Set up cell.textField

        return cell

    }

}

6.試試看:)

http://img1.sycdn.imooc.com//5d9825d70001686e00560028.jpg

查看完整回答
反對(duì) 回復(fù) 2019-10-05
?
Helenr

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊

上面的答案是最好的答案,但是有很多原因可以解決此問(wèn)題。對(duì)于有此問(wèn)題的任何人,這是另一個(gè)潛在的解決方案:


我的問(wèn)題是我在選擇ViewController類而不是Storyboard視圖。因此,由于未使用情節(jié)提要,因此我對(duì)情節(jié)提要單元的引用毫無(wú)意義。


我正在這樣做:


let viewControllerB = SubViewController()

viewControllerB.passedData = diseases[indexPath.row].name

navigationController?.pushViewController(viewControllerB, animated: true)

我需要做這樣的事情:


let storyBoard : UIStoryboard = UIStoryboard(name: "Main", bundle:nil)

let nextViewController = storyBoard.instantiateViewController(withIdentifier: "SubViewStoryboardController") as! SubViewController

nextViewController.passedData = diseases[indexPath.row].name

self.present(nextViewController, animated:true, completion:nil)


查看完整回答
反對(duì) 回復(fù) 2019-10-05
  • 3 回答
  • 0 關(guān)注
  • 957 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)