UIImageView rounder UIImageView 奇怪的 cornerRadious

UIImageView rounder UIImageView strange cornerRadious

我想要 UIImageView 中的圆形图像。我将 UITableViewCell 子类化并在 awakeFromNib 中添加了 cornerRadious,如下所示:

class FriendsCell: UITableViewCell {
    @IBOutlet weak var friendImageView: UIImageView!

    override func awakeFromNib() {
        super.awakeFromNib()
        self.friendImageView.layer.cornerRadius = self.friendImageView.frame.size.width / 2
        self.friendImageView.clipsToBounds = true
}

这就是我得到的:

这就是我的预期:

填充tableView的代码:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as FriendsCell
    let user = fetchedResultsController.objectAtIndexPath(indexPath) as Friend
    cell.friendImageView.image = UIImage(data: user.photo)
    return cell
}

我也尝试在此处填充 tableView 时设置 cornerRadius,但我得到了相同的结果。我还尝试了 contentMode 的所有模式(AspecFill、ScaleToFill ..) 奇怪的是,在另一个 VC 中,我有相同的布局,但没有发生这种情况。

我和你有同样的问题,我尝试在 viewWillLayoutSubviews() 的函数中设置它。然后一切正常!下面是我的代码

  override func viewWillLayoutSubviews() {
    detailPortImageView.image = detailImage
    detailPortImageView.layer.cornerRadius = detailPortImageView.frame.width / 2
    detailPortImageView.clipsToBounds = true

    detailPortImageView.layer.borderWidth = 2
    detailPortImageView.layer.borderColor = UIColor.whiteColor().CGColor
}