当我在UIImage
函数中设置cellForRowAt
时,看起来我正在设置的UIImage
与UIImageView
重叠。
已编辑:在clipsToBound
contentMode
并将.scaleAspectFit
设置为Storyboard
。
我照常设置Constraints
中的所有Storyboard
:
但是当我运行该应用程序时,它看起来比我设置的Constraints
具有更高的优先级,这就是我得到的:
不久前,我在其他项目中做了类似的事情,对我来说效果很好:
这是用于设置单元格的代码,尽管我可以确定我只是偶然地在Storyboard
上标记或未标记了一些东西:
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
return 100
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return songArray.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: MainVCCell.CELL_ID, for: indexPath) as? MainVCCell else { return UITableViewCell() }
cell.showLoader()
cell.songNameLabel.text = songArray[indexPath.row].title
if songImageArray[songArray[indexPath.row].title] != nil {
cell.imageView?.image = songImageArray[songArray[indexPath.row].title]!!
cell.hideLoader()
}
cell.setupImageDesign()
return cell
}
请让我知道是否需要其他信息,谢谢。
答案 0 :(得分:1)
将图像视图clipsToBounds
设置为true
。
答案 1 :(得分:1)
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
guard let cell = tableView.dequeueReusableCell(withIdentifier: MainVCCell.CELL_ID, for: indexPath) as? MainVCCell else { return UITableViewCell() }
cell.showLoader()
cell.songNameLabel.text = songArray[indexPath.row].title
if songImageArray[songArray[indexPath.row].title] != nil {
cell.imageView?.image = songImageArray[songArray[indexPath.row].title]!!
cell.hideLoader()
}
cell.setupImageDesign()
return cell
}
cell.imageView?.image
是UITableViewCell中的默认imageView。
您必须重命名自定义UIImageView插座
答案 2 :(得分:0)
在情节提要中更改UIImageView的contentMode
并设置clipsToBounds = true
。
答案 3 :(得分:0)
将ImageView的ContentMode更改为.scalToFill
,并将裁剪属性更改为clipToBounds
答案 4 :(得分:0)