2012-03-13 13 views
3

저는 iOS 응용 프로그램을 개발하고 있으며 최근에 xCode 4.3.1 및 iOS 5.1 시뮬레이터로 "업그레이드"되어 한 문자만으로도 매우 이상한 문제가 있습니다. 캐릭터 뷰어에서 "Heavy Check Mark"라고 불리우며 5.0.1 이하 버전에서는 내 앱에서 멋지며 .textColor = [UIColor redColor]로 표시됩니다. 5.1에서는 시뮬레이터에서 검은 색으로 표시되고 제 휴대 전화는 jailbroken이므로 실제 장치에서는 5.1에서 확인하지 않았습니다. 다른 캐릭터를 넣으면 빨간색으로 표시되지만이 특정 캐릭터는 항상 검은 색으로 표시됩니다. 앞에 공백을 넣으면 빨간색으로 표시되지만 테두리가있는 레이어를 사용할 때 공백이 해제됩니다. 아래는 실제 코드입니다. 그러나 더 간단한 레이블을 시도하고 동일한 문제가 있습니다.IOS 5.1 UILabel과 Heavy Check Mark 문자가 TextColor를 무시합니다

 isChecked = [[[UILabel alloc] initWithFrame:CGRectMake(20.0,9.0,20,20)] autorelease]; 
     isChecked.font = [UIFont boldSystemFontOfSize:24.0]; 
     isChecked.backgroundColor = [UIColor clearColor]; 
     isChecked.textColor = [UIColor redColor]; 
     isChecked.layer.borderColor = [UIColor blackColor].CGColor; 
     isChecked.layer.borderWidth = 2.0; 
     isChecked.text = @"✔"; 
     isChecked.tag = 2; 
     [cell.contentView addSubview:isChecked]; 

다른 사람이나 다른 특수 문자 및 UILabel.textColor에 문제가있는 사람은 누구입니까? 제안 된 해결 방법은 무엇입니까? 일시적으로 레이어를 제거하고 새로운 최소 라벨을 만들려고했는데이 문자가 검은 색이면 동일한 결과가 표시되고 다른 문자가 있으면 빨간색이 설정됩니다.

+0

어떤 일이 대신의 소스 코드에서 유니 코드 문자를 가진 ("\ u_whatever_"@) 유니 코드 이스케이프를 사용하는 경우? 어딘가에서 소스 코드에 유니 코드 문자를 넣는 것은 좋지 않은 생각 이었지만, 그에 대한 확실한 소스는 없습니다. – jrturton

+0

저에게 맞는 업데이트와 수정은 있지만 여전히 이상합니다. 다른 사람이이 애매한 문제에 부딪혔다면 시스템 글꼴 대신 이름이 지정된 글꼴을 사용하는 것이 문제를 해결하는 것으로 나타났습니다. – skymatt70

+0

@jrturton, 좋은 제안과 같은 행동. 그 글자와 시스템 글꼴이라면 항상 검은 색입니다 만, "\ u2714"는 코드를 읽는 것이 더 정확하다는 것에 동의합니다. – skymatt70

답변

1

나를 위해 작동하지만 여전히 이상하게 작동하는 업데이트 및 수정. 다른 사람이이 애매한 문제에 부딪혔다면 시스템 글꼴 대신 이름이 지정된 글꼴을 사용하는 것이 문제를 해결하는 것으로 나타났습니다.

+1

나는 너를 모른다. 그러나 이름이 지정된 글꼴이 특별히 Zapf Dingbats 인 경우에만 작동시킬 수 있었다. 다른 폰트 (그 중 발견 한 것)는 그 캐릭터를 가진 것처럼 보이기 때문에, 5.1에서 분명히 추가 한 이모티콘 그래픽으로 되돌아갑니다. – zem

+1

zem, "Arial Unicode MS"및 \ u2714 문자를 사용 중이며 빨간색으로 표시 할 수 있습니다. – skymatt70

+0

이상한. Arial Unicode MS가 캐릭터 뷰어에서 그 글립 문자가있는 또 다른 글꼴 이었지만 iOS 프로젝트의 인터페이스 빌더에서 옵션이 아닙니다. 어쩌면 코드에서 지정할 수 있지만 거기에서 지정할 수는 없습니까? – zem

0

iOS9에서는 비표준 글꼴에도 큰 체크 표시를 할 수있는 가능성을 제거했습니다. 이는 U+2714 HEAVY CHECK MARK이 Apple의 그림 이모티콘 세트에 포함되어 있으며 단색 유니 코드 문자 대신 풀 컬러 비트 맵으로 그려지기 때문입니다.

이런 일이 발생하지 않도록하려면 U+FE0E VARIATION SELECTOR-15 문자를 사용할 수 있습니다. 문자열을 @"\u2714\uFE0E"으로 변경하면 색상을 지정할 수 있습니다.

isChecked.text = @"\u2714\uFE0E"; 
isChecked.textColor = [UIColor redColor];