0

iOS7에서만 나타나는 MKNumberBadgeView에 문제가 있습니다. initState에는 self.textColor = [UIColor whiteColor];이 있지만 numberBadge가 표시되면 텍스트 색이 검정색입니다.iOS7에서 잘못된 텍스트 색상을 표시하는 MKNumberBadgeView

MKNumberBadgeView 클래스에 대한 유일한 변경 사항은 sizeWithFont가 iOS7에서 감가 상각 되었기 때문에 CGSize numberSize = [numberString sizeWithFont:self.font];CGSize numberSize = [numberString sizeWithAttributes:@{NSFontAttributeName:self.font}];으로 변경하는 것입니다.

왜 내가 사용하고 있다고 말하는 색상을 사용하지 않는지 아는 사람이 있습니까?

감사

편집 :
나는 몇 가지 조사를 해봤 및 sizeWithAttributes 문제는 여기처럼 보인다. 다른 제 3 자 클래스를 사용하여 배지를 만들었고 sizeWithAttributes에 추가했을 때 같은 문제가 발생했습니다. CGSize numberSize = [numberString sizeWithAttributes:@{NSFontAttributeName:self.font, NSForegroundColorAttributeName:[UIColor whiteColor]}];을 시도했지만 여전히 작동하지 않습니다.

답변

1

숫자 문자열의 크기를 계산할 때 색은 부적합합니다. 당신이 글꼴 색상을 설정해야

//[numberString drawAtPoint:textPt withFont:self.font]; //this is deprecated 
[numberString drawAtPoint:textPt 
      withAttributes:@{NSFontAttributeName:self.font, 
          NSForegroundColorAttributeName:self.textColor}]; 

: 당신은 아마 텍스트가 실제로 시점에서 그려됩니다 코드의 다른 부분을 변경 잊어 버린.

+1

https://github.com/ckteebe/CustomBadge에서 동일한 문제가 발생했습니다. iOS7의 출시 이래로 Xcode는 "sizeWithFont"의 사용이 중단 된 것에 대해 경고했습니다. App이 컴파일 된 것처럼 "withAttributes"로 이동하지 않았습니다. 그러나 모퉁이를 돌면있는 iOS8에서 나는 모든 경고를 제거하기로 결정했습니다. 그리고, 내가했던 것처럼, CustomBadge는 내가 사용하고있는 검은 색 텍스트 색상을주었습니다. 나를 위해 고정 된 NSForegroundColorAttributeName을 추가하십시오. 따라서, 왜이 질문/(대답)이 옳은 것으로 투표되지 않았는지 확실하지 않습니다. 이것은 나를 위해 일했다. –

관련 문제