IOS 는 CAShapeLayer 를 어떻게 사용 하여 복잡 한 View 의 커버 효 과 를 실현 합 니까?
2560 단어 IOSCAShapeLayerView커버 효과
최근 채 팅 항목 을 정리 할 때 그림 을 보 낼 때 삼각형 의 지향 효과 가 있어 이 그림 의 발송 자 를 가리킨다.서버 에서 우리 에 게 돌아 온 그림 은 사각형 의 그림 일 뿐 입 니 다.우 리 는 사각형 의 그림 이나 View 를 어떻게 사용자 정의 마스크 효 과 를 더 하 는 지 본 고 에서 말 하고 자 하 는 내용 입 니 다.효 과 는 다음 과 같다.첫 번 째 는 View 의 커버 효과 이 고 두 번 째 는 UIImageView 의 커버 효과 이다.
2.실현 메커니즘
모든 View 의 layer 층 에 mask 속성 이 있 습 니 다.그 는 이 View 의 마스크 효 과 를 설정 하 는 것 입 니 다.이 마스크 자체 도 레이 어 층 이다.사용자 정의 layer 를 만 들 고 커버 가 필요 한 View 에 덮어 쓰 면 됩 니 다.문 제 는 위의 그림 에 표 시 된 불규칙 한 그림 을 만 드 는 레이 어 에 있다.CAShape Layer 는 몇 개의 점 에 따라 순서대로 연결 되 어 닫 힌 공간의 layer 를 만 들 수 있 습 니 다.다음 그림 에서 보 듯 이:
3.실현 코드
실현 방식 은 CAShapeLayer 의 뷰 마스크 를 구현 한 카 테 고리 다.
@implementation CAShapeLayer (ViewMask)
+ (instancetype)createMaskLayerWithView : (UIView *)view{
CGFloat viewWidth = CGRectGetWidth(view.frame);
CGFloat viewHeight = CGRectGetHeight(view.frame);
CGFloat rightSpace = 10.;
CGFloat topSpace = 15.;
CGPoint point1 = CGPointMake(0, 0);
CGPoint point2 = CGPointMake(viewWidth-rightSpace, 0);
CGPoint point3 = CGPointMake(viewWidth-rightSpace, topSpace);
CGPoint point4 = CGPointMake(viewWidth, topSpace);
CGPoint point5 = CGPointMake(viewWidth-rightSpace, topSpace+10.);
CGPoint point6 = CGPointMake(viewWidth-rightSpace, viewHeight);
CGPoint point7 = CGPointMake(0, viewHeight);
UIBezierPath *path = [UIBezierPath bezierPath];
[path moveToPoint:point1];
[path addLineToPoint:point2];
[path addLineToPoint:point3];
[path addLineToPoint:point4];
[path addLineToPoint:point5];
[path addLineToPoint:point6];
[path addLineToPoint:point7];
[path closePath];
CAShapeLayer *layer = [CAShapeLayer layer];
layer.path = path.CGPath;
return layer;
}
@end
4.호출 방식
UIView *view = [[UIView alloc] initWithFrame:CGRectMake(40, 50, 80, 100)];
view.backgroundColor = [UIColor orangeColor];
[self.view addSubview:view];
CAShapeLayer *layer = [CAShapeLayer createMaskLayerWithView:view];
view.layer.mask = layer;
작성 자:yixiangboy주소
이상 은 본 고의 모든 내용 이 므 로 여러분 들 이 IOS 프로 그래 밍 을 배 우 는 데 도움 이 되 기 를 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
IOS에서 ReplayKit 및 RTC 사용 방법응용된 소리와 아나운서의 소리를 포함한다.이 두 가지 수요를 감안하여 우리는 스크린 공유를 하는 생방송에 필요한 미디어 흐름을 간단하게 분석할 수 있다. 만약 우리가 Audio App과 Audio Mic를 두 개의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.