UIImageView 뒤에 그림자를 만드는 가장 좋은 방법은 무엇입니까?
뒤에 그림자를 추가하고 싶은 UIImageView가 있습니다.나는 그 사과가 그것을 자산으로 가지고 있기를 바라지만 그들은 우리 프로그래머들을 위해 많은 것들을 어렵게 만들어야 하기 때문에 나는 이 질문을 해야 합니다.
더 좋고 쉬운 방법이 있습니다.UIImageView는 UIView에서 상속되므로 계층 속성을 가집니다.당신은 레이어의 섀도 속성에 액세스할 수 있고, 쾅, 당신은 섀도를 얻을 수 있습니다.
UIImageView를 nib 파일의 IBOutlet으로 사용하는 경우 awakeFromNibe 등을 구현하면 됩니다.
목표-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];
스위프트 5.x
profileImageView.layer.cornerRadius = profileImageView.frame.size.width/2
profileImageView.clipsToBounds = false
profileImageView.layer.shadowColor = UIColor.black.cgColor
profileImageView.layer.shadowOpacity = 0.7
profileImageView.layer.shadowOffset = CGSize(width: 2, height: 2)
profileImageView.layer.shadowRadius = 10
언급URL : https://stackoverflow.com/questions/2044479/what-is-the-best-way-to-create-a-shadow-behind-a-uiimageview
'programing' 카테고리의 다른 글
Linux에서 도커를 중지하는 방법 (0) | 2023.08.07 |
---|---|
이미지가 로드될 때 자바스크립트 콜백을 실행하려면 어떻게 해야 합니까? (0) | 2023.08.07 |
안드로이드 레이아웃 XML에서 앱:srcCompat과 안드로이드:src의 차이점 (0) | 2023.08.07 |
키 저장소 정보를 build.gradle에 넣지 않고 APK 서명 (0) | 2023.08.07 |
테이블 생성/삭제 후 복원 지점 생성에도 불구하고 "테이블 정의가 변경됨" (0) | 2023.08.07 |