iOS Custom TableView с изображениями и галочками - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь продублировать то, что указано в ссылке. Я пытаюсь отобразить Tableview с изображениями, которые могут быть проверены для приложения IOS. Я не совсем уверен, что я делаю не так, чтобы не показывать изображения. Я удостоверился, что добавил изображения в папку ресурсов и правильно назвал их в своем файле ViewController. Вот код для моего файла:

import UIKit

class CustomCell : UITableViewCell{
    @IBOutlet var myImage: UIImageView!
    @IBOutlet var myText: UILabel!
}

class RmMatchingViewControllor : UIViewController, UITableViewDelegate, UITableViewDataSource{ //
    @IBOutlet var tableView: UITableView!

    var labelData = ["Social Drinking", "Clean Freak", " Do you Cook", "Enjoy Movies", "Listen to Music", "Enjoy Sports","Perefer temperature cold", "Non smoking"]
    var imageData = ["Beer", "Clean", "cooking", "movies", "Music","NFL","roomTemp", "Smoking"]

    override func viewDidLoad() {
        super.viewDidLoad()
        tableView.dataSource = self
        tableView.delegate = self
        tableView.tableFooterView = UIView()
    }

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell{
        let cell:CustomCell = self.tableView.dequeueReusableCell(withIdentifier: "customCell") as! CustomCell //check this spot if program doesnt run
        cell.myText?.text = self.labelData[indexPath.row]
        cell.myImage?.image = UIImage(named:self.imageData[indexPath.row])
        return cell
    }

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return labelData.count
    }

    func numberOfSections(in tableView: UITableView) -> Int{
        return 1
    }

    func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        tableView.deselectRow(at: indexPath, animated: true)

        if let cell = tableView.cellForRow(at: indexPath as IndexPath){
            if cell.accessoryType == .checkmark{
                cell.accessoryType = .none
            } else{
                cell.accessoryType = .checkmark
            }
        }
    }
}

Here is the picture of the ViewControllor

введите описание изображения здесь

введите описание изображения здесь

Ответы [ 2 ]

0 голосов
/ 02 ноября 2018

enter image description here var slotCellArray: [SlotCell] = SlotCell

func tableView (_ tableView: UITableView, раздел numberOfRowsInSection: Int) -> Int { вернуть SlotObjectArray.count }

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

    let cell
     = tableView.dequeueReusableCell(withIdentifier: "SlotCell_id", for: indexPath) as! SlotCell

    cell.lbl_slot_details.text = SlotObjectArray[indexPath.row].Time

    if (SlotObjectArray[indexPath.row].Available_Status as? Bool)! {

       cell.btn_slot_status_out.setTitle(" ", for: .normal)

    } else {

         cell.btn_slot_status_out.setTitle("✔️", for: .normal)
    }
    cell.btn_slot_status_out.tag = indexPath.row


    self.slotCellArray.append(cell)

    return cell




}


@IBAction func btn_slot_status_act(_ sender: UIButton) {

if sender.titleLabel?.text == "✔️"
{
         SlotObjectArray[sender.tag].Available_Status = true

    for i in 0..<selectedSlots.count {
      print(i)
        if let slotSelected = selectedSlots[i] as? AnyObject {

            if let SlotId = slotSelected["slot_id"] as? String {

                if SlotId == SlotObjectArray[sender.tag].id {
                    selectedSlots.remove(at: i)
                    break
                }

            }

        }

    }



    print(selectedSlots)

} else {

      SlotObjectArray[sender.tag].Available_Status = false
    let slot = ["Slot_id":SlotObjectArray[sender.tag].id,"Selected_time":SlotObjectArray[sender.tag].Time,"Booking_date":txt_date.text!]

    selectedSlots.append(slot as AnyObject)


     print(selectedSlots)
    }
   tbl_slots_list.reloadData()

}[![enter image description here][1]][1]
0 голосов
/ 02 ноября 2018

@ Tyrek Clarke Попробуйте добавить точку останова на tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) и посмотрите, вызывается ли она или правильно назначается изображение. Обычно вы можете проверить вывод UIImage. Я пытался использовать тот же код и могу дать результат. (предполагается пропустить несколько изображений)

Result

На что обратить внимание:

  • Ваш делегат табличного представления и источник данных подключены
  • Ваш идентификатор повторного использования ячейки должен совпадать с тем, что вы написали в коде
  • Убедитесь, что ваши IBOutlets прикреплены
  • Проверьте название изображения (убедитесь, что нет никакой разницы)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...