如何在 UITableView Cell 中给 ImageView 添加 Size 和 Position?

How add Size and Position to ImageView in UITableView Cell?

我在我的 UITableView 单元格中添加了一张图片:

cell.imageView!.image = UIImage(named: "Default.png")

一切正常,显示图像。现在我想给图像一个自定义的大小和位置,所以我用这个代码试试:

cell.imageView!.frame = CGRect(x: 29, y: 17, width: 14, height: 13)

但由于某种原因它不起作用。有什么建议吗?

如果您的位置不会改变您可以在 TableViewCell

中创建框架
class TableViewCell: UITableViewCell {

@IBOutlet weak var imageView: UIImageView!

override func layoutSubviews() {
    super.layoutSubviews()

    self.imageView?.frame = CGRect(x: 12, y: 23, width: 12, height: 100)
}
}

您可以在 tableview(cellForRowAt) 中更改框架,但如果框架不会更改,则很糟糕,因为 cellForRowAt 运行 在向上滚动或加载单元格时。可以在UITableViewCell中定义一次。

  1. 为此自定义 tableViewCell 添加自定义 class。
  2. 通过故事板在 tableView 内部创建一个自定义的 tableViewCell。
  3. 在此自定义 tableViewCell 中添加图像。
  4. 为此图像添加约束(顶部、底部、前导、尾随)。

这样,您无需以编程方式执行任何操作,图像大小问题将由这些约束解决。

  • 如果你在 storyboardXib 文件中做与框架相关的事情会更好。如果你想要静态框架。

运行时间:

  • 你可以使用NSLayoutConstraints
  • 您可以在 draw(_ rect: CGRect) 方法中更改框架。