찾다

 >  Q&A  >  본문

objective-c - iOS imageView渲染的问题

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

迷茫迷茫2867일 전651

모든 응답(2)나는 대답할 것이다

  • 黄舟

    黄舟2017-04-18 09:48:29

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

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

    으아아아

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

    회신하다
    0
  • 大家讲道理

    大家讲道理2017-04-18 09:48:29

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

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

    회신하다
    0
  • 취소회신하다