흥미로운 문제가 있지만 해결 방법을 모르겠습니다. @IBInspectable로 UIView를 확장하려고합니다. 그러나이 방법을 사용하면 모서리 반경은 뷰의 실제 크기가 아닌 기본 파일면에서 설정되는 것처럼 보입니다.원형 UIView 전체 원형이 아님
IB에서 "View as"를 iPhoneSE로 설정하고 iPhoneSE 용으로 빌드하면보기가 원입니다. 그러나 iPhone7 용으로 제작하면 모서리가 완전히 둥글어지지 않습니다. 반대로, iPhone7에 "보기 모드"를 설정하고 iPhone7 용으로 빌드하면 뷰는 원입니다. 그러나 iPhoneSE 용으로 빌드하면 모서리가 둥글게됩니다.
사진 아래 코드 :
확장
extension UIView {
@IBInspectable var cornerRadius:Double {
get {
return Double(layer.cornerRadius)
}
set {
layer.cornerRadius = CGFloat(newValue)
layer.masksToBounds = newValue > 0
}
}
@IBInspectable var circleView:Bool {
get {
return layer.cornerRadius == min(self.frame.width, self.frame.height)/CGFloat(2.0) ? true : false
}
set {
if newValue {
layer.cornerRadius = min(self.frame.width, self.frame.height)/CGFloat(2.0)
layer.masksToBounds = true
}
else{
layer.cornerRadius = 0.0
layer.masksToBounds = false
}
}
}
}
"보기로"IB
에 iPhoneSE로 아이폰 7 iPhoneSE구축을위한 설계
설정
"보기로"iPhone7로 설정
빌드 아이폰 7
IB 설정 아이폰 SE
원형 UIView가 IB로 선택된 경우 자동 레이아웃 설정과 스크린 샷을 캡쳐 할 수 있습니까? –
@SamuelTulach 위의 내용을 추가했습니다. – steventnorris