单击单元格后,我找不到为什么cell.imageView会发生变化的原因。似乎只有宽度变化。在我的代码中,图像框架应该是第二张图片中的iPhone。
imageView是Swift内置的,而不是tableviewcell的自定义名称。
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell{
if tableView == resultsTable {
let cell: UITableViewCell = UITableViewCell(style: UITableViewCellStyle.Subtitle, reuseIdentifier: "MarketCell")
var supplyDetail = String()
var frame = cell.imageView!.frame
let imageSize = 50 as CGFloat
frame.size.height = imageSize
frame.size.width = imageSize
cell.imageView!.frame = frame
cell.imageView!.layer.cornerRadius = imageSize / 2.0
cell.imageView!.clipsToBounds = true
cell.imageView?.image = UIImage(named: "Profile Picture")
...getDataInBackgroundWithBlock...
cell.imageView?.image = UIImage(data: data!)!
return cell
}
}
点击前,
点击后,
答案 0 :(得分:5)
当您使用UITableViewCell的imageView属性时,您可以在Apple的条款中接受它。即它将根据单元格的高度调整大小,并显示在contentMode = .ScaleAspectFit的任何默认标签的左侧。要根据您自己的规范设置UIImageView,您可以创建自己的原型单元UITableView,创建自己的原型单元,或者您可以覆盖简单地覆盖layoutSubviews,如下所示:
override func layoutSubviews(){
super.layoutSubview()
self.imageView.frame = CGRect(x:0.0,y:0.0,width:40.0,height:40.0) //Or whatever frame you think is necessary
}
您也可以将一个UIImageView作为子视图添加到cell.contentView,并在其出列后删除所有cell.contentView的子视图。