2017-10-06 38 views
0

我有一个viewController在UIView里面,因为我使用CarbonKit来制作像android这样的标签。UIImageView cornerRadius不是让它圈出

我有一个userProfileViewController其中我展示了一个选项卡下,这有UIImageView这是我正在做尝试了一圈,以显示使用此代码:

self.userDisplayPic.layer.cornerRadius = self.userDisplayPic.frame.size.width/2; 
self.userDisplayPic.clipsToBounds = true 

和结果是: enter image description here

我的猜测是,UIView内提出可能是压缩的设计,但其他元素专门更新按钮似乎罚款时,可能是因为自动尺寸的。所以,如何解决这个问题有什么建议?

+0

尝试做的主线程。 –

+0

我认为你的图像宽度和高度不一样。 –

+0

问题可能出在你执行这个时候。如果它在'viewDidLoad'移动到'viewDidLayoutSubviews'或更改你的约束 –

回答

1

这是因为你的self.userDisplayPic高度宽度不相同的第一使它同然后在下面的代码会为你工作。

self.userDisplayPic.layer.cornerRadius = self.userDisplayPic.frame.size.width/2; 
self.userDisplayPic.clipsToBounds = true 

而在viewWillLayoutSubviewsviewWillAppear方法

1

尝试设置cornerRadius在viewWillLayoutSubviews写那些代码,它会用实际宽度为半径。

override func viewWillLayoutSubviews() { 
     self.userDisplayPic.layer.cornerRadius = self.userDisplayPic.frame.size.width/2; 
     self.userDisplayPic.clipsToBounds = true 
    } 
1

一段时间self.view.layoutIfNeeded()需要

试试这个代码

DispatchQueue.main.async { 
     self.view.layoutIfNeeded()  

     self.userDisplayPic.layer.cornerRadius = self.userDisplayPic.frame.size.width/2; 
     self.userDisplayPic.clipsToBounds = true 
     self.view.layoutIfNeeded()  


    } 
0
self.userDisplayPic.layer.cornerRadius = userDisplayPic.frame.height/2 
self.userDisplayPic.clipsToBounds = true