cell.imageView!.frame size change。迅速

时间:2016-02-25 18:54:02

标签: swift image uitableview uiimageview cell

单击单元格后,我找不到为什么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

    } 
}

点击前,

enter image description here

点击后,

enter image description here

1 个答案:

答案 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的子视图。

相关问题