如何让 UIImageView 填充 UITableViewCell?
Posted
技术标签:
【中文标题】如何让 UIImageView 填充 UITableViewCell?【英文标题】:How do I make a UIImageView fill a UITableViewCell? 【发布时间】:2017-03-26 05:35:05 【问题描述】:这是我的第一篇文章,所以如果有什么我应该做的不同的事情,请告诉我!
我正在制作一个照片应用程序,我希望照片填充 UITaleViewCells,并扩展单元格以适应图像。
我一直在努力让它发挥作用,我用谷歌搜索了我能做的所有事情,观看了一些 youtube 视频,但我找不到任何与 UIImageView 一起工作的内容。这是我现在正在使用的代码:
override func viewWillAppear(_ animated: Bool)
tableView.estimatedRowHeight = 100
tableView.rowHeight = UITableViewAutomaticDimension
在 UIImageView 我有这些约束:
Bottom Margin
、Top Margin
、Trailing Margin
和 Leading Margin
,当我运行我的应用程序时,我在图像的顶部和底部看到了这个非常奇怪的空间。
这里是一些截图:
【问题讨论】:
尝试在您的 viewdidload 方法中将 automaticallAdjustsScrollViewInsets 设置为 false。例如:tableview.automaticallAdjustsScrollViewInsets = false。 @TusharSharma 我该把代码放在哪里?在override func viewWillAppear(_ animated: Bool)
,我的问题中的代码在哪里,还是viewDidLoad()
? view
第一个字母应该大写吗?
在 viewDidLoad() 中添加 tableView.automaticallAdjustsScrollViewInsets = false
@TusharSharma 好的,但我收到此错误:Value of type 'UITableView' has no member 'automaticallAdjustsScrollViewInsets'
你的桌子叫什么名字?
【参考方案1】:
我建议您为此尝试使用 UICollectionView,因为对于此类布局,最好使用集合视图而不是表视图,试试这个(tempArr 表示您的图像数组),
func collectionView(collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: NSIndexPath) -> CGSize
// create a cell size from the image size, and return the size
let picHeight = tempArr[indexPath.row].valueForKey("imgHeight") as! String
let picWidth = tempArr[indexPath.row].valueForKey("imgWidth") as! String
var picHeightFloat :CGFloat!
var picWidthFloat :CGFloat!
if let n = NSNumberFormatter().numberFromString(picHeight)
picHeightFloat = CGFloat(n)
if let q = NSNumberFormatter().numberFromString(picWidth)
picWidthFloat = CGFloat(q)
let imageSize = CGSize(width: picWidthFloat, height: picHeightFloat)
return imageSize
【讨论】:
我去看看,我之前没用过UICollectionView。 我做过同样的应用程序,我也开始使用表格视图,但是随着需求和代码的易用性,我意识到最好使用集合视图。集合视图真的很容易。试一试。 我已经用你的 UITableView 解决了这个问题,但我会在以后的项目中记住 CollectionViews。感谢您的宝贵时间和建议!以上是关于如何让 UIImageView 填充 UITableViewCell?的主要内容,如果未能解决你的问题,请参考以下文章
UIButton 内的 UIImageView 具有默认填充 - 如何删除?
如何在“方面填充”模式下将 UIImageView 裁剪为新的 UIImage?
如何在“方面填充”模式下将 UIImageView 裁剪为新的 UIImage?