UITableViewCell中的UIImageView大小不正确

时间:2015-09-28 11:34:58

标签: ios swift uitableview uiimageview

我想在我的UITableViewCell中创建一个圆角图像,我已将图像高度和宽度约束设置为80,当我尝试这样做时:

cell.avatarImage.layer.cornerRadius = cell.avatarImage.frame.size.width/2
cell.avatarImage.clipsToBounds = true

我的图片是菱形而不是圆形。我检查了图像的宽度和高度,而不是80,它显示:128和240。 我还想补充说,如果我使用cornerRadius的常量值为40,它就可以完美地运行。 有人可以向我解释为什么它单向工作,frame.size方法给我一个错误的结果?有没有办法在不使用常数值的情况下获得圆形图像?

我是如何设置UIImageView大小的: http://i.stack.imgur.com/6cXXI.png

编辑:

我有一个自定义的TableViewCell类

class ContactTableViewCell: UITableViewCell {

@IBOutlet weak var nicknameLabel: UILabel!
@IBOutlet weak var descriptionLabel: UILabel!
@IBOutlet weak var avatarImage: UIImageView!

}

在TableViewController中我调用 cellForRowAtIndexPath

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as! ContactTableViewCell

    cell.nicknameLabel.text = "Nick"
    cell.descriptionLabel.text = "Desc"
    cell.avatarImage.backgroundColor = UIColor.redColor()
    cell.avatarImage.layer.cornerRadius = cell.avatarImage.frame.size.width/2
    cell.avatarImage.clipsToBounds = true
    return cell
}

当我试着打电话

print(cell.avatarImage.frame.size.width)

它返回值240.0

当我获取frame.size值而不是设置常量值时,我得到了什么 http://i.stack.imgur.com/22t71.png

0 个答案:

没有答案