自定义UITableViewCell:使用NSLayoutConstraint设置高度时保持纵横比

时间:2017-11-19 00:45:40

标签: swift uitableview nslayoutconstraint

我有一个自定义的UITableViewCell,我想要显示一个高度已设置的图像。

由于它是一个自定义单元格,我希望图像由使用此自定义单元格的UITable修改(来自cellForRowAt覆盖)。

在这种情况下,我想将高度修改为25.0,但我想保持图像的纵横比。 将contentMode属性设置为.scaleAspectFit会使我的图像居中(不知道为什么),这不是我想要的(我希望它在左边)。

我到目前为止所做的是将translatesAutoresizingMaskIntoConstraints设置为false并设置约束,如此(logoUIImageView):

// logo settings
logo.translatesAutoresizingMaskIntoConstraints = false
aView.addSubview(logo)

NSLayoutConstraint.activate([
  // logo constraints
  logo.topAnchor.constraint(equalTo: aView.topAnchor, constant: 30.0),
  logo.leadingAnchor.constraint(equalTo: aView.leadingAnchor, constant: 40.0),
  logo.heightAnchor.constraint(equalToConstant: 25.0), // fixed height
])

然后,在使用customCell时:

// ... some code before
cell.logo.image = UIImage(named: "newImage")

我知道如何保持图像的纵横比并且具有固定的高度吗?

修改

对于如此回避感到抱歉,这是我拥有的和我想要的一个例子:

我在服务器上有图像。这些图片会在我的应用程序中下载并显示在自定义单元格中,但我不知道它们的宽度和高度。

让我们说应用程序检索的图像是100w和50h:我想在固定高度为25点的单元格上显示它。

当然,我希望它具有正确的宽度(在这种情况下,它将是50w和25h)。我不希望它被裁剪,我只想以25分的高度显示它。宽度仅限于其视图范围。

0 个答案:

没有答案