모서리가 둥근 CGRect (Swift)로 UIImage / -View를 만드는 방법
Swift iOS Playground에서 둥근 모서리가있는 UIImageView를 어떻게 만드나요?
내부는 색상으로 채워야합니다.
let imageView = UIImageView(frame: CGRectMake(0, 0, 100, 100))
imageView.backgroundColor = UIColor.redColor()
imageView.layer.cornerRadius = 8.0
imageView.clipsToBounds = true
결과:
신속하게 둥근 원형 이미지 프레임의 경우 저에게 효과적이었습니다.
self.profileImageView.image = UIImage(named:"profileUser")
self.profileImageView.layer.cornerRadius = self.profileImageView.frame.size.width / 2
self.profileImageView.clipsToBounds = true
그리고 그림자를 추가하려면 :
self.profileImageView.layer.masksToBounds = NO;
self.profileImageView.layer.cornerRadius = 8;
self.profileImageView.shadowOffset = CGSizeMake(5.0, 5.0);
self.profileImageView.shadowRadius = 5;
self.profileImageView.shadowOpacity = 0.5;
이것을 시도해보십시오.
self.profileImageView.layer.cornerRadius = self.profileImageView.frame.size.width / 2
self.profileImageView.clipsToBounds = true
각 UIView 에 바인딩 할 반경과 마스크를 작성하는 데 지쳤습니다 . 그래서 UIView에 대해 다음과 같은 확장을 만들었습니다. 모든 UIView 하위 클래스에서 작동해야하지만 테스트하지는 않았습니다. 물론 사용하는 특정 뷰에 대해 확장 범위를 좁힐 수 있습니다.
extension UIView {
func setRadius(radius: CGFloat? = nil) {
self.layer.cornerRadius = radius ?? self.frame.width / 2;
self.layer.masksToBounds = true;
}
}
특정 값을 전달하지 않으면 기본적으로 뷰의 절반 너비로 설정됩니다.
스위프트 3.0, 4.0
스토리 보드를 사용하려는 경우. 이것을 적용하고 "Clip to bounds"가 활성화되어 있는지 확인합니다.
각을 반올림하는 옵션을 원하면 값을 UIImageView
확인 clip to bounds
하고 설정하는 것을 잊지 않고이 코드를 프로젝트에 복사 할 수 있습니다.true
import UIKit
@IBDesignable
extension UIImageView
{
private struct AssociatedKey
{
static var rounded = "UIImageView.rounded"
}
@IBInspectable var rounded: Bool
{
get
{
if let rounded = objc_getAssociatedObject(self, &AssociatedKey.rounded) as? Bool
{
return rounded
}
else
{
return false
}
}
set
{
objc_setAssociatedObject(self, &AssociatedKey.rounded, newValue, .OBJC_ASSOCIATION_RETAIN_NONATOMIC)
layer.cornerRadius = CGFloat(newValue ? 1.0 : 0.0)*min(bounds.width, bounds.height)/2
}
}
}
Identity inspector의 User Defined Runtime Attributes 섹션 에서 layer.cornerRadius = 10 을 설정하면 테이블 셀과 같은 반복 가능한 요소에서도 작동합니다.
Swift 5.0 :
개인적으로 선호하는 것은 이와 같은 특정 변경 사항에 대해 신속한 파일을 추가하는 것입니다. 그런 다음 변경하려는 요소의 하위 클래스 인 "RoundCorner"와 같은 클래스를 만듭니다 (이 경우 View 요소). 그런 다음 개별 설정을 재정의합니다.
class RoundCorner: UIView {
override func draw(_ rect: CGRect) {
self.layer.cornerRadius = 10 // change this number to get the corners you want
self.layer.masksToBounds = true
}
}
그런 다음 변경하려는 요소를 선택하고 사용자 지정 클래스를 이전에 만든 클래스로 설정하기 만하면됩니다.
'IT TIP' 카테고리의 다른 글
활동 수명주기-모든 방향 변경시 onCreate 호출 (0) | 2020.12.27 |
---|---|
onCreate가 호출되지 않았습니다. (0) | 2020.12.27 |
배경에 16 진수 색상 코드를 설정하는 방법 (0) | 2020.12.27 |
Emacs 사용법을 배우는 데 시간을 투자 할 가치가 있습니까? (0) | 2020.12.27 |
iPhone HTML5 비디오 재생 버튼 숨기기 (0) | 2020.12.27 |