UIView
에 녹색 테두리가있는 원 테두리를 추가하려고하는데 borderWidth, cornerRadius 및 borderColor 속성이있는 UIView
하위 클래스를 간단하게 만들고 스토리 보드에서 설정하고 있습니다.너비가있는 테두리를 UIView에 추가하면 외부에 작은 배경이 표시됩니다.
@IBDesignable
class RoundedView: UIView {
@IBInspectable var cornerRadius: CGFloat {
get {
return layer.cornerRadius
}
set {
layer.cornerRadius = newValue
layer.masksToBounds = newValue > 0
}
}
@IBInspectable var borderWidth: CGFloat {
get {
return layer.borderWidth
}
set {
layer.borderWidth = newValue
}
}
@IBInspectable var borderColor: UIColor {
get {
if let color = layer.borderColor {
return UIColor(cgColor: color)
} else {
return UIColor.clear
}
}
set {
layer.borderColor = newValue.cgColor
}
}
}
하지만 컴파일하고 응용 프로그램을 실행하거나 인터페이스 빌더에 표시 할 때 내가 아직 거기 (흰색 배경에 꽤 볼) 경계 외부 라인을 볼 수 있습니다.
녹색 배경, 프레임 10 × 10, 모서리 반경 = 5이 RoundedView
UIImageView
의 모서리에 배치됩니다 (누군가가 온라인인지 여부를 나타내는). UIImageView와 흰색 배경 모두에서 녹색 테두리가 바깥 쪽을 볼 수 있습니다.
당신은 무엇이 잘못되었는지 말해 주실 래요?
(1) UIImageView가 UIView 내부에 배치되는 방법이나 제약 조건에 대한 코드 나 설명을 포함시키지 않았습니다. (2) IB에 대해 언급하고 컴파일해야하지만, 실제로 앱을 실행하면 어떨까요? 보기 자체에 대한 모든 올바른 것들 (코드와 IB 스크린 샷 모두)을 볼 수 있습니다 ... 그리고 UIImageView에 테두리가없는 경우 (그리고 배경이 선명 할 때) 좋을 것입니다. – dfd
(1) 내 대답을 업데이트했습니다.이 녹색 점은 테두리가있는 RoundedView이며,이 이상한 경계 문제가 있습니다. 이것은 단지 UIImageView 위에 배치되었습니다. (2) 물론 컴파일 및 실행 -이 테두리는 시뮬레이터와 녹색 점 주위의 실제 장치 – Roval