objective-c - iOS imageView渲染的问题
迷茫
迷茫 2017-04-18 09:46:29
0
2
644

比如说A是一个imageView,B仅仅是一个普通的透明的view,我希望A被B盖住的部分是彩色的,而没有盖住的部分是黑白的,请问有什么实现的思路吗

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

모든 응답(2)
黄舟

은 A의 layer.mask 구현을 제어할 수 있습니다. 마스크는 A와 B의 겹치는 영역입니다. rect의 채우기 layer.mask는 겹치는 영역의 path를 계산하여 변경할 수 있습니다. 마스크를 사용하면 많은 마스킹 효과를 얻을 수 있습니다.

참고하실 수 있도록 코드를 작성했습니다. 놀이터에서 직접 효과를 확인하실 수 있습니다:

으아아아

정상적으로 실행되면 플레이그라운드의 Assistant Editor에서 다음과 같은 효과를 볼 수 있습니다:

大家讲道理

1. AB의 교차점 크기 계산
2. 색칠된 부분의 시작점 계산
3. 색칠된 부분을 그리기 위해 CAShapeLayer를 사용합니다. 세 번째 단계별 베지어 곡선에 A에 레이어를 추가합니다.

개인적인 생각이니 한번 드셔보세요.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿