Swift: ImageView方面填充错误



我想在UITableView中创建一个UI,它有点像Facebook主页,在顶部,有一个图像充当封面图像,在这个"封面图像"的表面有一个"用户图像"

Facebook主页

我通过首先添加ImageView,设置自动布局约束来做到这一点。然后拖动另一个ImageView在前面的ImageView的顶部,然后添加约束。"封面图像"的大小为200 * 600(constrains to the cell with top: 0, left:0, right:0, height: 200),"用户头像图像"的大小为50 * 50(constrains to the cell with bottom:0, left:275, right: 275, hight: 50, width: 50)。TableView设置为静态单元格,高度300,宽度600

然而,当我将ImageView模式设置为"Aspect Fill"时,"cover image"将填充整个单元格,即使我将其高度设置为200。并且没有显示"用户档案图像"。

有谁知道我做错了什么吗?由于

updated:在我的TableView中,我有2个静态单元格,第一个用于放置封面图像和配置文件图像,第二个用于放置文本内容。对于第二个单元格,我希望它的文本长度是动态的,所以我使用以下代码:

override func tableView(tableView: UITableView, heightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat {
    if indexPath.row == 0 {
        return 300
    }
    return tableView.contentSize.height
}

我不确定这是否与问题有关。

我尝试只设置封面图像,我添加了约束(top:0, left:0, right:0, bottom: 100),所以封面图像应该有一个大小:600*200(单元格是600* 300)。但是当我将图像视图模式设置为"aspect fill"时,它仍然会填充整个单元格,即使我将约束设置为bottom: 100。

这与您的约束有关。检查高度约束的优先级。应该设置为1000。

如果你不能弄清楚,另一个选择是在封面照片下放置另一个视图,大小为100,作为间隔器,然后将其他图像约束到这个间隔器视图。然后你可以把其他元素放到这个视图中。

最新更新