在这个函数中,我对传入的数据类型进行了切换,并调用了将子视图添加到我的单元格的函数。此刻我没有数据,我插入了存根。
方法不起作用,结果是textview之后的空白区域(避免图片),我不知道为什么,我将子视图添加到我的单元格,理论上它必须有效。现在我不使用开关。我有单元格高度350,标签高度50和textview高度50所以对于图像/视频我保持250。 请帮我提供建议。
func collectionView(_ collectionView: UICollectionView,
cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: "CollectionNews",for: indexPath) as! NewsCell
cell.personImage.image = UIImage(named: "welder.png")
cell.textView.layer.cornerRadius = 5
cell.addSubview(addImage(image : UIImage(named : "error.png")!, for: cell, at : indexPath ))
//switch (contentArray[indexPath.row]){
//case let image where image is String :
//cell.addSubview(addImage(image : UIImage(named : "error.png")!, for: cell, at : indexPath ))
//case let video where video is String :
//break
//default:
//break
// }
return cell
}
func addImage(for cell : NewsCell, at index : IndexPath)->UIImageView{
let testImg = UIImage(named: "error.png")
let imageForCell = UIImageView(image: testImg)
imageForCell.autoresizingMask = [UIViewAutoresizing.flexibleWidth , UIViewAutoresizing.flexibleHeight]
imageForCell.frame = CGRect(x: cell.textView.bounds.minX, y: cell.textView.bounds.maxY + 5, width: imageForCell.frame.origin.x, height: imageForCell.frame.origin.y)
imageForCell.layer.cornerRadius = 5
imageForCell.layer.masksToBounds = true
return imageForCell
}
func addVideo () {
}
答案 0 :(得分:0)
首先:我看到函数 addImage 没有将UIImage声明为参数
第二:你为imageForCell设置框架属性是错误的。您应该执行以下操作:(假设您希望图像位于textView下方)
var newFrame = cell.textView.frame
newFrame.y += 5
imageForCell.frame = newFrame