문제

뒤에 그림자를 추가하고 싶은 uiimageview가 있습니다. 나는 애플이 그것을 재산으로 가지고 있기를 바랍니다. 그러나 그들은 우리 프로그래머들에게 많은 것을 열심히 만들어야 하므로이 질문을해야합니다.

도움이 되었습니까?

해결책

더 좋고 쉬운 방법이 있습니다. uiimageview는 uiview에서 상속되어 레이어 속성이 있습니다. 레이어의 그림자 속성과 bam에 액세스 할 수 있습니다. 그림자가 있습니다.

UIIMAGEVIEW를 IBOUTLET로 NIB 파일로 가지고 있다면 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];

보기를 위해 "클립 하위 뷰"가 꺼져 있는지 확인하십시오.

확장 된 신속한 솔루션. 서브 클래싱이 필요하지 않습니다. 부르다 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];
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top