2017-04-24 10 views
0

나는이 질문이 누군가에게 도움이 될 것이라는 희망 속에서 나 자신의 질문에 대답 할 것이다.iOS 10.3.1 업데이트가 일부 NSAttributedString 속성을 손상시킵니다.

우리 앱은 을 사용하여 문자열의 특정 부분에 대해 취소 선 속성을 정의했습니다.

NSRange range = [fullString rangeOfString:product.originalDeal]; 
    [dealString addAttribute:NSFontAttributeName value:[UIFont fontWithSize:12] range:range]; 
    [dealString addAttribute:NSStrikethroughStyleAttributeName value:@1 range:range]; 
    [dealString addAttribute:NSStrikethroughColorAttributeName value:[UIColor grayColor] range:range]; 
    [dealString addAttribute:NSForegroundColorAttributeName value:[UIColor grayColor] range:range]; 

iOS 10.3에서 우리는 취소 선 기능이 더 이상 일관되게 발생하지 않는 것을 확인했습니다. 때때로 그것은 출석했고, 결석했을 때가있었습니다.

질문 : 취소 선을 다시 얻는 방법?

답변

0

여기에 우리가 그것을 해결 방법은 다음과 같습니다

[dealString addAttribute:NSBaselineOffsetAttributeName value:@(1) range:range]; 

목록 우리의 속성의 맨 아래에. 이것은 iOS 10.3과 10.2에서이 문제를 극복했습니다.

문자열에 요소 \n이 포함되어 있고 오프셋 특성 범위에 해당 요소가 포함되어 있으면 해당 요소도 포함됩니다 (취소 선이 없음). 취소 선을 생성하기 위해 문자열의 일부분에만 오프셋을 적용했습니다.

기타 속성 - 회색 및 글꼴 -은 영향을받지 않았습니다.