2016-09-23 3 views
2

iOS 내장형 나침반 앱으로 놀고 있었는데 UI가 궁금합니다.iOS : 부분적으로 텍스트의 색을 변경하는 방법

enter image description here

텍스트 색 (심지어 원)가 부분적으로 동적으로 변경 될 수

여기서 흥미있는 부분이다.

많은 검색을했는데 결과는 모두 특성 문자열입니다. 이 효과를 구현하는 방법은 무엇입니까?

편집 됨 :

I 동일한 프레임 상단에서 하단 whitelabel와 같이 두 blackLabel UILabels (whiteLabelblackLabel)를 추가하는 것을 시도했다. 그런 다음 원을 blackLabel의 마스크로 설정합니다.

'whiteLabel'은 완전히 blackLabel으로 덮여 있으며, 'blackLabel'과 원이 교차하지 않으면 두 레이블이 모두 표시되지 않습니다.

+3

이것은 내 생각에 귀속 문자열과 관련이 없습니다. 다양한 색상과 투명도를 가진 UIView를 겹쳐서 사용하는 것이 좋을 것 같습니다. – Woodstock

답변

1

우드 스탁 (Woodstock)과 마찬가지로 NSAttributedStrings과 아무 관련이 없습니다.

저는 UILabel의 레이어가 살아있는 것으로 밝혀 졌다고 말하고 싶습니다.이 레이어는 교차하는 다른 레이어와 교차되는 부분의 오버레이 영역에 따라 달라집니다.

이러한 공통점을 파악하면 색상을 반전하는 마스크를 적용하기 만하면됩니다.

이제 두 개의 원 (따라서 교차 부분을 찾는 두 개의 레이어)이 보이기 때문에 좀 더 복잡하지만 결국에는 레이블의 좌표가 교차하는지 여부를 '단지 좌표 목록'이라고합니다. .

흥미로운 운동이 될 수 있습니다. 그 행동을 흉내내는 데 상당한 양의 시도가 필요할 것입니다. 그러나 제 추론이 중요하다는 것을 확신합니다. (알 겠어? : o)

+0

가져와. 레이어에 대한 자세한 내용은 Apple의 문서를 참조하겠습니다. – CokileCeoi

2

동일한 장소에 두 개의 "14"레이블이 있다고 상상해보십시오. 아래쪽은 흰색이고 마스크가 해제되어 있고 위쪽은 검정색이며 2 개의 원을 포함하는 레이어 마스크가 있으므로 원이있는 곳만 볼 수 있습니다.

+0

그건 실제로 가능합니다. 그리고 아마도 내 솔루션보다 더 효율적 –

+0

멋지다, 나는 당신의 솔루션을 시도 할 것입니다 – CokileCeoi

관련 문제