gpt4 book ai didi

ios - 当我尝试以编程方式添加 UIView 时,UITableViewCell 高度不会自动调整(而是压扁我的 UIView)

转载 作者:行者123 更新时间:2023-11-28 10:40:44 27 4
gpt4 key购买 nike

环境 ... Swift 4.0, iOS 11.0+

这里是 Swift 和 Apple 开发的新手.. 我正在尝试将 UIView(不同高度)添加到 UITableViewCell。 UIView 似乎已正确添加,但 UITableViewCell 未调整其高度以显示整个 UIView。

遇到这个:https://stackoverflow.com/a/36422189/3681880 .我试图通过从头开始创建这个特定示例来回归基础,以确保单元格行高根据标签大小进行调整。这按预期对我有用。

下一步,我尝试将 UIImageView 添加到 MyCustomCell 实现中,这就是我的问题所在......

class MyCustomCell: UITableViewCell {

@IBOutlet weak var myCellLabel: UILabel!

override func awakeFromNib() {
super.awakeFromNib()

let imageView = UIImageView(frame: CGRect(x:0.0,y:0.0,width:100.0,height:100.0))
imageView.image = UIImage(named:"addData_20pt")

contentView.addSubview(imageView)

imageView.translatesAutoresizingMaskIntoConstraints = false
imageView.topAnchor.constraint(equalTo: self.topAnchor, constant: 20).isActive = true
imageView.bottomAnchor.constraint(equalTo: self.bottomAnchor).isActive = true
imageView.leadingAnchor.constraint(equalTo: self.leadingAnchor, constant: 10).isActive = true
imageView.trailingAnchor.constraint(equalTo: self.trailingAnchor, constant: -10).isActive = true
}
}

在屏幕截图中,您可以看到图像都被压扁以适合顶行。我如何让单元格扩展以适合图像?

ugly screenshot of tableview now

(为这张非常丑陋的 table 道歉 - 只是把它放在一起来理解这个概念!)

为了快速引用,这是上面引用的帖子中的 ViewController 代码

import UIKit
class ViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

// These strings will be the data for the table view cells
let animals: [String] = [
"Ten horses: horse horse horse horse horse horse horse horse horse horse ",
"Three cows: cow, cow, cow",
"One camel: camel",
"Ninety-nine sheep: sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep baaaa sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep sheep",
"Thirty goats: goat goat goat goat goat goat goat goat goat goat goat goat goat goat goat goat goat goat goat goat goat goat goat goat goat goat goat goat goat goat "]

// Don't forget to enter this in IB also
let cellReuseIdentifier = "cell"

@IBOutlet var tableView: UITableView!

override func viewDidLoad() {
super.viewDidLoad()

// delegate and data source
tableView.delegate = self
tableView.dataSource = self

// Along with auto layout, these are the keys for enabling variable cell height
tableView.estimatedRowHeight = 44.0
tableView.rowHeight = UITableViewAutomaticDimension
}

// number of rows in table view
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return self.animals.count
}

// create a cell for each table view row
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

let cell:MyCustomCell = self.tableView.dequeueReusableCell(withIdentifier: cellReuseIdentifier) as! MyCustomCell
cell.myCellLabel.text = self.animals[indexPath.row]
return cell
}

// method to run when table view cell is tapped
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("You tapped cell number \(indexPath.row).")
}
}

最佳答案

因此,您只使用标签设置了单元格的大小。我不知道您想如何查看您的单元格,但如果您希望单元格的大小根据标签或 imageView 发生变化,那么我建议您执行以下操作:

1) 在 XIB 而不是代码中设置你的 imageView

2)像这样设置约束:

enter image description here

enter image description here

您可以在 XIB 中设置图像或:

imageView.image = UIIMage(named: "YourImageName")

我的解决方案是这样的:

enter image description here

或者你可以随意安排,使用 imageView 的属性“grater of equal”

关于ios - 当我尝试以编程方式添加 UIView 时,UITableViewCell 高度不会自动调整(而是压扁我的 UIView),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50574120/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com