【问题标题】:How to make TableCell UIImageView have the same width but varying height depending on the image?如何使 TableCell UIImageView 根据图像具有相同的宽度但不同的高度?
【发布时间】:2016-08-21 03:28:38
【问题描述】:

这是我的应用程序现在的外观,请原谅它用于调试目的的丑陋粉红色:

如您所见,所有单元格的大小相同,并且 UIImageViews 的大小也相同,但图像并未将其全部填满。理想情况下,我希望所有照片都具有相同的宽度,但根据照片的不同高度不同,并且每个单元格都相应地调整大小,因为有些照片比其他照片高,我不希望短照片占用空间。

这是我的故事板和约束:

我在这方面寻求帮助的人告诉我以编程方式进行。我已经广泛搜索,但仍然不确定如何做到这一点,已经尝试过 image.frame.width = 100 但这没有做任何事情。有没有办法在 Storyboard 上执行此操作,如果没有,我该如何以编程方式执行此操作(请在 Swift 中!)?

谢谢!

【问题讨论】:

  • 你的细胞是静态的还是动态的?
  • 我不确定,我想我希望它们是动态的,但我不知道它们现在是什么。

标签: ios swift uitableview uiimageview uistoryboard


【解决方案1】:

试试这个:

override func viewDidLoad() {
    super.viewDidLoad()
    // Default cell height
    self.tableView.estimatedRowHeight = 60
    // This will auto increment your table cell height
    self.tableView.rowHeight = UITableViewAutomaticDimension
}

【讨论】:

  • 事实证明,我已经在这样做了,但是estimatedRowHeight = 100 :( 将其更改为 60 也没有做任何事情,除了一些照片现在没有显示出来
  • jk^ 当我将其更改为 60 时,照片确实出现了,这是 API 调用的一些错误。但仍然困在同一条船上。
  • 在情节提要中检查您的单元格高度。
  • 否则在此处粘贴您的代码。所以我将能够找出实际问题。
【解决方案2】:

三种方式:

1.在预渲染之前手动计算所有图像的高度并将高度传递给tableview委托。

2.使用 UITableViewAutomaticDimension 属性进行单元格自动调整大小,需要使用自动布局,系统版本需要高于 8.0。

3.和之前的方法一样,有一个优秀的第三方库,用于自动调整单元格大小,名为UITableView-FDTemplateLayoutCell。支持iOS6+。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-13
    • 1970-01-01
    • 1970-01-01
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    • 2013-10-25
    • 1970-01-01
    相关资源
    最近更新 更多