我的自定义单元格未显示在我的表格视图中

Posted

技术标签:

【中文标题】我的自定义单元格未显示在我的表格视图中【英文标题】:My custom cells are not showing up in my tableview 【发布时间】:2019-06-17 02:59:12 【问题描述】:

所以我一直试图让我的自定义单元格显示在这个 tableview 上,但我不确定它们为什么没有显示

我已经检查了其他堆栈溢出问题并尝试了他们的修复,但无济于事。请忽略 aws 的内容,因为您可以看到我对文本进行了硬编码,因此我现在可以让它们出现。

这是包含 tableview 的类中的代码

 import Foundation
 import AWSDynamoDB
 import AWSCognitoIdentityProvider
 import UIKit
// this will be the main feed class showing the user data 
class UserDetailTableViewController : UITableViewController 
// attributes for the custome cell

@IBOutlet weak var testing: UITextField!

@IBOutlet var Table: UITableView!
var response: AWSCognitoIdentityUserGetDetailsResponse?
var user: AWSCognitoIdentityUser?
var pool: AWSCognitoIdentityUserPool?
var questiondata : Array<Phototext> = Array()


override func viewDidLoad() 
    tableView.delegate = self
    tableView.dataSource = self

    super.viewDidLoad()

    self.pool = AWSCognitoIdentityUserPool(forKey: AWSCognitoUserPoolsSignInProviderKey)
    if (self.user == nil) 
        self.user = self.pool?.currentUser()

    
         // grabbing data from our aws table
    updateData()

    self.refresh()






override func viewWillDisappear(_ animated: Bool) 
    super.viewWillDisappear(animated)
    self.navigationController?.setToolbarHidden(true, animated: true)


override func viewWillAppear(_ animated: Bool) 
    super.viewWillAppear(animated)
    self.navigationController?.setToolbarHidden(false, animated: true)



@IBAction func Questions(_ sender: Any) 
    performSegue(withIdentifier: "ask", sender: self)



// MARK: - IBActions

@IBAction func signOut(_ sender: AnyObject) 
    self.user?.signOut()
    self.title = nil
    self.response = nil
    self.refresh()


 // reloads the prior view
 func refresh() 
    self.user?.getDetails().continueOnSuccessWith  (task) ->    
 AnyObject? in
        DispatchQueue.main.async(execute: 
            self.response = task.result
            self.title = self.user?.username
            // saving the user name from the main menu 
            username123 = self.user?.username! ?? "broken"
        )
        return nil
    


  
    // function that calls to our aws dynamodb to grab data from the    
     // user     
    //and re update questions
     // the array list

   func updateData()
    let scanExpression = AWSDynamoDBScanExpression()
    scanExpression.limit = 20
    // testing to grabt the table data upon startup
    let dynamoDBObjectMapper = AWSDynamoDBObjectMapper.default()
    dynamoDBObjectMapper.scan(Phototext.self, expression:     
  scanExpression).continueWith(block:     
   (task:AWSTask<AWSDynamoDBPaginatedOutput>!) -> Any? in
        if let error = task.error as NSError? 
            print("The request failed. Error: \(error)")
         else if let paginatedOutput = task.result 
            // passes down an array of object
            for Photo in paginatedOutput.items as! [Phototext] 
                // loading in the arraylist of objects
                // adding the objects to an arraylist
                self.questiondata.append(Photo)




            

            DispatchQueue.main.async 
                //code for updating the UI

            

        

        return ()

    )

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
        // returning the number of rows
        return 3
    

    func tableView(_ tableView: UITableView, cellForRowAt indexPath:     
  IndexPath) -> UITableViewCell 
        let cell = tableView.dequeueReusableCell(withIdentifier: 
     "Questionpost", for: indexPath) as! QuestionCell

        cell.QuestionText.text = "call it"
        cell.Subject.text = "a day"

        return cell


    





这是 QuestionCell 类的代码

import UIKit

class QuestionCell: UITableViewCell 

@IBOutlet weak var Subject: UILabel!

@IBOutlet weak var QuestionText: UITextView!

 

单元格类叫做 QuestionCell,我在故事板单元格上留下的标识符是 Questionpost

这是我的故事板的照片:

【问题讨论】:

在单元格的内容视图中,它们被命名为主题和问题。 我已经更新了照片 用户详细信息视图控制器包含表格视图,其中有一个名为 Questionpost 的单元格,该单元格有一个包含这两个文本字段的内容视图,如果我遗漏了一些明显的错误,请见谅。 我认为这不是问题,因为文本是黑色的,我现在只是用白色文本框尝试过,当我硬编码文本时,它显示了。我已经更新了代码以反映我的整个班级。但我现在不依赖aws的东西,因为我只是想让单元格显示这个硬编码的文本。 在情节提要中,您是否将用户详细信息场景标记为 UserDetailTableViewController? 【参考方案1】:

我已通过声明具有正确类型的扩展来修复它。

extension UserDetailTableViewController: UITableViewDataSource,UITableViewDelegate


func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int 
    // returning the number of rows
    return 3


func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
    let cell = tableView.dequeueReusableCell(withIdentifier: "Questionpost", for: indexPath) as! QuestionCell

    cell.QuestionText.text = "call it"
    cell.Subject.text = "a day"

    return cell



很好地解释了正在发生的事情,当您嵌入 tableview 时,您需要遵守 UITableViewDataSource 和 UITableViewDelegate。

Redundant conformance of TableView to protocol UITableViewDataSource with Xib Files

【讨论】:

以上是关于我的自定义单元格未显示在我的表格视图中的主要内容,如果未能解决你的问题,请参考以下文章

自定义单元格未显示

自定义表格单元格未调整大小以适合内容视图

iOS - 表格视图单元格未正确呈现

显示零的自定义表格单元格

自定义单元格未出现在表格视图中

故事板中的自定义表格视图单元格布局似乎无效