【问题标题】:Autoresize static cell by overweight label通过超重标签自动调整静态单元格的大小
【发布时间】:2019-05-23 05:30:36
【问题描述】:

我有一些静态单元格,这不想通过标签中的超重内容来改变它们的大小。我在每个单元格中都有所有约束(topbottomleadingtralling),我也有这个代码:

import UIKit

class FilmTableViewController: UITableViewController {

    @IBOutlet weak var posterView: UIImageView!
    @IBOutlet weak var titleLabel: UILabel!
    @IBOutlet weak var yearLabel: UILabel!
    @IBOutlet weak var directorLabel: UILabel!
    @IBOutlet weak var actorsLabel: UILabel!
    @IBOutlet weak var countryLabel: UILabel!
    @IBOutlet weak var plotLabel: UILabel!
    @IBOutlet weak var RatingLabel: UILabel!

    private let networkingService = NetworkingService()
    var filmImbdbID = ""

    override func viewDidLoad() {
        super.viewDidLoad()
        loadFilm(filmImbdbID)


    }

    override func viewDidAppear(_ animated: Bool) {
        tableView.rowHeight = UITableView.automaticDimension
        tableView.estimatedRowHeight = 80
    }

    private func loadFilm(_ film: String) {

        networkingService.fetchFilmRecording(matching: film) { [weak self] response in

            guard let `self` = self else {
                return
            }

            self.directorLabel.text = response.recordings?.director
            self.titleLabel.text = response.recordings?.title
            self.yearLabel.text = response.recordings?.year
            self.actorsLabel.text = response.recordings?.actors
            self.countryLabel.text = response.recordings?.country
            self.plotLabel.text = response.recordings?.plot
            self.RatingLabel.text = response.recordings?.rating

            if let imageUrl = URL(string: response.recordings!.poster) {
                guard let data = try? Data(contentsOf: imageUrl) else { return }
                let image = UIImage(data: data)
                self.posterView.image = image
            }
        }
    }
}

numberOfLines 也是 0。

当我看到这个视图时,它不起作用,但是如果我向下滑动,它看起来像这样:

拜托,有什么解决办法吗? :(

【问题讨论】:

  • 什么实际上不起作用?什么是超重内容?
  • 你试过不使用height-delegate 方法吗?
  • 我的意思是超重。 label.text 不适合单元格。您可以在图片(演员)中看到它。我也试过只使用属性或只使用方法,但一切都是一样的。
  • 尝试将labelnumberOfLines设置为0。
  • 哦,忘了,我会在我的问题中更新它。我之前通过 atributeInspector 设置了 numberOfLines。

标签: swift uitableview


【解决方案1】:

你需要更新你的代码,原因是不清楚发生了什么。

无论如何你应该使用 or:

tableView.rowHeight = UITableView.automaticDimension
tableView.estimatedRowHeight = 80

或委托方法

func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return UITableView.automaticDimension
}

func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    return UITableView.automaticDimension
}

不是两个

【讨论】:

  • 如果我没记错的话,我已经试过了,但结果是一样的:(虽然如果我向下滑动它可以工作,例如在图像的底部。但不是在 didLoad 之后方法。可能是像 tableView.reloadData() 这样的方法有问题吗?
  • 你能用数据源设置的代码更新你的帖子吗?
  • 听起来您想要无限制的自动调整大小,所以要么不要使用.automaticDimension,要么给标签添加最大高度限制。跨度>
  • 高度的标签约束是否为greaterThanOrEqualTo
  • 我没有这个 tableVC 的数据源和委托方法。我通过添加 tableVC 中的所有代码更新了我的帖子。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多