반응형
UIImageView 뒤에 그림자를 만드는 가장 좋은 방법은 무엇입니까?
뒤에 그림자를 추가하려는 UIImageView가 있습니다. 나는 애플이 그것을 속성으로 가지고 있기를 바라지 만 그들은 우리 프로그래머들에게 많은 것을 어렵게 만들어야하기 때문에이 질문을해야한다.
이를 수행하는 더 좋고 쉬운 방법이 있습니다. UIImageView는 UIView에서 상속되므로 레이어 속성이 있습니다. 레이어의 그림자 속성에 액세스하면 그림자가 생겼습니다.
nib 파일에 대한 IBOutlet으로 UIImageView가있는 경우 awakeFromNib를 구현할 수 있습니다.
목표 -C
- (void)awakeFromNib {
imageView.layer.shadowColor = [UIColor purpleColor].CGColor;
imageView.layer.shadowOffset = CGSizeMake(0, 1);
imageView.layer.shadowOpacity = 1;
imageView.layer.shadowRadius = 1.0;
imageView.clipsToBounds = NO;
}
잊지 마세요 #import "QuartzCore/CALayer.h"
Swift의 경우 여러 가지 방법으로 진행할 수 있습니다. 클래스 확장, 하위 클래스 또는 imageView 인스턴스를 만듭니다. 어느 쪽이든 레이어 그림자 속성을 수정하는 과정은 동일합니다.
스위프트 3
override func awakeFromNib() {
super.awakeFromNib()
imageView.layer.shadowColor = UIColor.purple.cgColor
imageView.layer.shadowOffset = CGSize(width: 0, height: 1)
imageView.layer.shadowOpacity = 1
imageView.layer.shadowRadius = 1.0
imageView.clipsToBounds = false
}
가장 간단한 방법은 이미지 뷰에 그림자 레이어를 추가하는 것입니다.
CALayer *layer = [CALayer layer];
CGRect bounds = self.bounds;
layer.bounds = bounds;
layer.position = CGPointMake(bounds.size.width / 2 + 3, bounds.size.height / 2 + 3);
layer.backgroundColor = [UIColor colorWithWhite: 0.25 alpha: 0.55].CGColor;
layer.zPosition = -5;
[self.layer addSublayer: layer];
보기에 대해 "Clip Subviews"가 꺼져 있는지 확인하십시오.
확장 기능이있는 신속한 솔루션. 서브 클래 싱이 필요하지 않습니다. 에서 전화 myImage.addShadow()
를 viewDidLoad()
겁니다. 이것은 UIView
및에서 작동합니다 UIImageView
.
extension UIView {
func addShadow() {
layer.shadowColor = UIColor.black.cgColor
layer.shadowOffset = CGSize(width: 0, height: 0)
layer.shadowOpacity = 0.5
layer.shadowRadius = 5
clipsToBounds = false
}
}
그 외에도 흰색 테두리와 그림자를 만들고 싶다면 해당 코드를 사용할 수 있습니다.
//shadow part
imageView.layer.shadowColor = [UIColor blackColor].CGColor;
imageView.layer.shadowOffset = CGSizeMake(0, 1);
imageView.layer.shadowOpacity = 1;
imageView.layer.shadowRadius = 1.0;
//white border part
[imageView.layer setBorderColor: [[UIColor whiteColor] CGColor]];
[imageView.layer setBorderWidth: 2.0];
반응형
'Development Tip' 카테고리의 다른 글
'homestead ssh'를 처음 사용할 때 vagrant에 연결하기위한 기본 비밀번호가 있습니까? (0) | 2020.10.22 |
---|---|
ABAP와 SAP는 무엇입니까? (0) | 2020.10.22 |
Ruby 메서드의 시간 측정 및 벤치 마크 (0) | 2020.10.22 |
Go에서 배열 셔플 (0) | 2020.10.22 |
숫자를 정수와 소수 부분으로 나누기 (0) | 2020.10.22 |