2015-09-09 125 views
1

我正在复制下面图像中的效果。我用UIImageView属性创建了一个自定义UITableViewCell类。我将原型单元格设置为我的自定义类。但是,我无法获取表格单元格的高度来调整图像的高度。图像上方和下方总是有空间。如何在Swift中使用图像填充表格单元格

enter image description here

+0

您是否设置了自动布局? – Miknash

回答

0

您可以对您的图像高度的UITableViewCell动态的唤起注意。该UITableViewDelegate有一个名为tableView:estimatedHeightForRowAtIndexPath:功能据苹果说:

要求一个行的指定位置估计高度的委托。

然后你就可以在你的方法索要UIImageView的高度,正确设置该行的高度,请看下面的例子:

func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath indexPath: NSIndexPath) -> CGFloat { 
    return self.getEstimatedHeightForImageAtIndex(indexPath.row) 
} 

func getEstimatedHeightForImageAtIndex(row: Int) -> CGFloat { 
    // here you need to get the height of image for the selected row. 
} 

有一个很好的教程,你可以看了就知道更多主题:

我希望这可以帮助你。

0

我所做的是创建一个自定义的UITableViewCell,将UIImageView添加到单元格中,并将其大小调整到故事板中以填充整个单元格。

如果你这样做,请确保添加约束条件以使其水平和垂直居中,并添加间距约束,但将间距不改为边距(取消选中该框)。

见下面的图片:

enter image description here

还有一件事要记住的是ImageView的内容模式。我从@EmptyStack学到了很多东西,@erkanyildiz回答了this question

我希望你找到任何有用的东西,如果没有帮助,我很抱歉! :)

0

创建一个自定义UITableViewCell,将单元格样式设置为在故事板中自定义。将UIImageView添加到单元格并调整图像大小以填充整个单元格。将图像出口添加到您的自定义UITableViewCell中,并在您的TableViewController中创建图像时使用该出口。

在你viewDidLoad中()函数添加 tableView.rowHeight = UITableViewAutomaticDimension

然后您需要图像宽高比(宽度/高度),以便当您设置行的高度就可以使用它。

func tableView(tableView: UITableView, estimatedHeightForRowAtIndexPath 
indexPath: NSIndexPath) -> CGFloat { 
    return view.frame.width/CGFloat(aspectRatio) 
} 
相关问题