ios - UITableView 返回奇怪的大小

标签 ios swift uitableview

大家好,我最近一直在处理 iOS 中的 UITableViews。我的 UITableView 返回了一些奇怪的结果..

一些照片显示

Then The first cell is so big.

Then the 2nd Cell looks like this

这些所有的单元格都有不同的大小..

类的代码是这样的

 import UIKit
    import FLAnimatedImage

    class ShotDetailTableViewController: UITableViewController {


      @IBOutlet weak var bgImageView: FLAnimatedImageView!

        @IBOutlet weak var viewsCount: UILabel!
        @IBOutlet weak var likesCount: UILabel!
        @IBOutlet weak var commentsCount: UILabel!

        @IBOutlet weak var avatarImageView: UIImageView!
        @IBOutlet weak var usernameLabel: UILabel!
        @IBOutlet weak var descriptionLabel: UILabel!

        @IBOutlet weak var reboundCount: UILabel!
        @IBOutlet weak var attachmentCount: UILabel!

        @IBOutlet weak var tagsCollectionView: UICollectionView!
        @IBOutlet weak var reboundCollectionView: UICollectionView!
        @IBOutlet weak var attachmentCollectionView: UICollectionView!

        @IBOutlet weak var commentTableView: UITableView!

        var shots : [Shot] = [Shot]()
        var comments : [Comment] = [Comment]()
        var shot : Shot!

        var reboundPages = 1
        var attachmentPages = 1

        override func viewDidLoad() {
            super.viewDidLoad()

            title = shot.title

            bgImageView.sd_setImageWithURL(NSURL(string: shot.imageUrl), placeholderImage: UIImage(named: "1"), options: .ContinueInBackground)

            viewsCount.text = "\(shot.viewsCount)"
            likesCount.text = "\(shot.likesCount)"
            commentsCount.text = "\(shot.commentCount)"

            avatarImageView.sd_setImageWithURL(NSURL(string: shot.user.avatarUrl), placeholderImage: UIImage(named: "2"))

            usernameLabel.text = "\(shot.user.username)"
            descriptionLabel.text = "\(shot.description)"

            reboundCount.text = "\(shot.reboundCount)"
            attachmentCount.text = "\(shot.attachmentsCount)"

            commentTableView.delegate = self
            commentTableView.dataSource = self
            commentTableView.estimatedRowHeight = 100.0;
            commentTableView.rowHeight = UITableViewAutomaticDimension;
            commentTableView.separatorStyle = UITableViewCellSeparatorStyle.None

            let api = DribbleObjectHandler()
           api.loadComments(shot.commentsUrl, completion:didLoadComments)

          NSUserDefaults.standardUserDefaults().setValue(true, forKey: "_UIConstraintBasedLayoutLogUnsatisfiable")
        }


   override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
        if tableView == commentTableView {
         return UITableViewAutomaticDimension
        } else {
         return UITableViewAutomaticDimension
        }
    }

       override func viewWillAppear(animated: Bool) {
         super.viewWillAppear(animated)
            avatarImageView.clipsToBounds = true
            avatarImageView.layer.cornerRadius = 25

          self.commentTableView.reloadData()
        }

        func didLoadComments(comments : [Comment]){
          self.comments = comments
          self.commentTableView.reloadData()
        }

      // MARK: - Table view data source

      override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
            // #warning Incomplete implementation, return the number of sections
        if tableView == commentTableView {
          return 1
        } else {
          return 1
         }
        }

        override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
            // #warning Incomplete implementation, return the number of rows
            if tableView == commentTableView {
              return comments.count
            } else {
            return super.tableView(tableView, numberOfRowsInSection: section)
            }
        }

        override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
            if tableView == commentTableView {
             let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! CommentCell

            // Configure the cell...
                let comment = comments[indexPath.row]

                //cell.nameLabel.text = comment.user.name
              //  cell.commentLabel.text = comment.body

                //cell.avatarImageView.sd_setImageWithURL(NSURL(string: comment.user.avatarUrl), placeholderImage: UIImage(named: "2"))
                cell.avatarImageView.image = UIImage(named: "2")

                return cell

            } else {
              let cell = super.tableView(tableView, cellForRowAtIndexPath: indexPath)
              return cell
          }
      }
      override func didReceiveMemoryWarning() {
            super.didReceiveMemoryWarning()
            // Dispose of any resources that can be recreated.
        }

    }

当我实现 heightForRowAtIndexPath 时,tableView 变得非常小 不幸的是我不能放置超过 2 个链接..所以我不能显示图片 我在日志中没有发现任何错误

我试图找到与此相关的问题,但找不到太多。

提前致谢 雅利安人

最佳答案

尝试实现 heightForRowAtIndexPath,而不是实现 estimatedHeightForRowAtIndexPath

关于ios - UITableView 返回奇怪的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35877524/

相关文章:

ios - 范围异常索引超出范围时崩溃

ios - UITableView 和 Core Data 中的嵌套部分

iphone - 从 UITableViewCell 到模态视图 Controller 的动画

ios - 单击菜单时它会挂起一段时间,然后转到第二个 View Controller

ios - 启动时应用程序崩溃

html - ios 10 youtube iframe 无法播放

iphone - iOS 5 - 应用程序运行良好,iOS 4 - 卡在 [UIWebView alloc]

swift - type (string , anyobject) 没有下标成员

iphone - UITableView滚动问题

ios - 尽管使用主线程,但 UI 没有得到更新