2017-10-06 3 views
0

UIView 안에 표시되는 viewController가 있는데, CarbonKit을 사용하여 android와 같은 탭을 만듭니다. UIImageView cornerRadius가 원을 그리지 않습니다.

I했습니다 내가 탭 중 하나에 표시하고있어 문제는이 코드를 사용하여 내가 원에 보여 주려 만들고있어 어느 UIImageView이있는 userProfileViewController :

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

하고 결과를 입니다 : enter image description here

내 생각 엔이 디자인하지만 다른 요소는 특별히 업데이트 버튼이 잘 보인다 압축 할 수있는 UIView 안에 발표 할 때 때문에 자동 크기 될 수 있다는 것이다. 그래서 이것은 어떻게 고칠 수있는 제안? 폭 처음 동일하지 및 당신의 self.userDisplayPic높이가 같은 다음 코드 아래에 당신을 위해 일한다 만들기 때문에

+0

는 주 스레드에서 일을하려고이 코드를 시도

필요합니다. –

+0

귀하의 이미지 너비와 높이가 같지 않다고 생각합니다. –

+0

문제는 아마도 이것을 실행할 때 발생했을 것입니다. 그것이'viewDidLoad'에 있다면'viewDidLayoutSubviews'로 이동하거나 제약 조건을 변경하십시오 –

답변

1

그것은이다.

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

그리고 viewWillLayoutSubviews 또는 viewWillAppear 방법 viewWillLayoutSubviews에 CornerRadius를 설정하는

1

시도에 그 코드를 작성, 그것은 반경에 대한 실제 폭을 사용합니다.

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