UIView가 있고 그 아래쪽 부분을 0 불투명으로 페이드하고 싶습니다.UIView의 그라디언트 마스크
전체 UIView 및 해당 내용에 영향을주기 위해 UIView (CALayer)에이 작업을 수행 할 수 있습니까?
UIView가 있고 그 아래쪽 부분을 0 불투명으로 페이드하고 싶습니다.UIView의 그라디언트 마스크
전체 UIView 및 해당 내용에 영향을주기 위해 UIView (CALayer)에이 작업을 수행 할 수 있습니까?
예, 당신이 할 수있는 뷰의 레이어 마스크로 CAGradientLayer
을 설정하여 :
#import <QuartzCore/QuartzCore.h>
...
CAGradientLayer *maskLayer = [CAGradientLayer layer];
maskLayer.frame = view.bounds;
maskLayer.colors = @[(id)[UIColor whiteColor].CGColor, (id)[UIColor clearColor].CGColor];
maskLayer.startPoint = CGPointMake(0.5, 0);
maskLayer.endPoint = CGPointMake(0.5, 1.0);
view.layer.mask = maskLayer;
P.S. 또한 작동하도록 앱에 QuartzCore.framework
을 연결해야합니다.
나는 이것이 더 오래되었다는 것을 알고있다. 그러나 cgcolor를 가져 와서 포인터로 다시 연결하는 것은 무엇을 의미 하는가? 'colors' 속성은 그것이 UIColors의 배열이라고 말합니다. –
docs - ** colors ** - 각 그래디언트 정지의 색상을 정의하는 CGColorRef 객체의 배열입니다. 그들을 NSArray에 저장하기 위해 우리는 그것을 id로 캐스팅합니다. 솔직히 ARC를 사용할 때 브릿지 캐스트가 필요하다고 생각했지만 코드가 지금 컴파일 된대로 괜찮습니다. – Vladimir
감사합니다. – Deeper
그라디언트 마스크로 고생하는 사람들에게는 'UIStackView'에 적용하면 작동하지 않습니다. –