2016-11-02 4 views
-2

Мне нужно добавить идентификатор ячейки, чтобы сделать ReusableCell для tableView. Однако я не вижу никаких cell в tableView и вид таблицы иерархический. как добавить ячейку в виде таблицы.Как определить ячейку таблицы таблицы файлов nib, чтобы сделать ReusableCell?

Примечание: в основном я хочу создать Xib файл, который должен содержать tableView и tableView должны иметь пользовательские UiTableViewCell

enter image description here

код здесь:

class SuggestNearTableViewCollectionViewCell: UICollectionViewCell , UITableViewDataSource,UITableViewDelegate{ 

    @IBOutlet weak var suggestTableView : UITableView! 


    override func awakeFromNib() { 
     super.awakeFromNib() 
     // Initialization code 
     self.suggestTableView.dataSource = self 
     self.suggestTableView.delegate = self 

     suggestTableView.register(UINib(nibName: "SuggestNearTableViewCell", bundle: nil), forCellReuseIdentifier: "SuggestNearTableViewCell") 
    } 

    func numberOfSections(in tableView: UITableView) -> Int { 
     return 1 
    } 
    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return 5 
    } 
    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "SuggestNearTableViewCell", for: indexPath) as! SuggestNearTableViewCell 
     return cell 
    } 

} 
+0

Зачем проголосовать, прошу прокомментировать –

+0

проверить мой ответ здесь http://stackoverflow.com/questions/40275727/is-it-possible-to-create-one-tableviewcell-that-can-be-used-in-multiple -table-co/40277758? noredirect = 1 –

+0

@UmairAfzal bro nib файл имеет таблицу. Я хочу, чтобы весоизмерительная ячейка от другого файла nib как? –

ответ

0

Прежде всего перейдите в File-> new -> Cocoa Touch Class и создайте класс UIViewCOntroller. Назовите свой класс соответствующим образом.

enter image description here

Теперь у вас есть файл XIb и Swift файл. Xib будет выглядеть примерно так.

enter image description here

Теперь перетащить UITableView на XIb и дать ему 4-контактные ограничения, как сверху = 0, нижний = 0, leadin = 0, и замыкающий = 0. Теперь создайте розетку вашего стола в новом быстро созданном файле. Подключите данные и источник и делегат.

Теперь снова зайдите в File-> New-> Coucoa Touch Class и создайте класс для UItableViewCell, также создайте файл Xib, как показано ниже.

enter image description here

Теперь вы будете иметь XIb для ячейки и быстрого файла для вашей ячейки. Просто спроектируйте свою ячейку как свою потребность в этом Xib. Позволяет сказать, если вы хотите поместить изображениеView или ярлык и т. Д. Затем создайте выходы всех компонентов в swift-файле вашей пользовательской ячейки. Теперь добавьте эту функцию в быстрый файл вашей пользовательской ячейки.

class func cellForTableView(tableView: UITableView, atIndexPath indexPath: NSIndexPath) -> YourCustomTableViewCell { 
    let kYourCustomTableViewCellIdentifier = "kYourCustomTableViewCellIdentifier" 
    tableView.registerNib(UINib(nibName: "YourCustomTableViewCell", bundle: NSBundle.mainBundle()), forCellReuseIdentifier: kYourCustomTableViewCellIdentifier) 

    let cell = tableView.dequeueReusableCellWithIdentifier(kYourCustomTableViewCellIdentifier, forIndexPath: indexPath) as! YourCustomTableViewCell 

    return cell 
} 

Ваша пользовательская ячейка готова к использованию.

Теперь перейдите в быстрый файл вашего столаView и в вашей ячейкеForRowAtIndexPath просто используйте эту ячейку, как показано ниже.

let cell = YourCustomTableViewCell.cellForTableView(tableView, atIndexPath: indexPath) 
cell.myImageView.image = "something" 
// Do something with your cell 

Надеюсь, было бы полезно. Дайте мне знать, если вы найдете какие-либо трудности.

0

Внутри tableViewController в viewDidLoad вам необходимо зарегистрироваться примерно так:

tableView.registerNib(UINib(nibName: "CustomOneCell", bundle: nil), forCellReuseIdentifier: "CustomCellOne")

А внутри cellForRowAtIndexPath объявите клетки:

let cell: CustomOneCell = tableView.dequeueReusableCellWithIdentifier("CustomCellOne", forIndexPath: indexPath) as! CustomOneCell 

Если вы не делаете это внутри tableViewController то вам нужно подключить tableView и делегат:

class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource { 

    @IBOutlet weak var tableView: UITableView! 

    ... 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 

     // Table view delegate 
     self.tableView.delegate = self 
     self.tableView.dataSource = self 

     ... 
Смежные вопросы