2011-08-19 2 views
4

enter image description here UILabel에서 특수 문자를 사용하려고합니다. 그러나 그것은 라벨을 잘라 버리고있다. 나는 라벨의 가장자리가 어디에 있는지를 보여주기 위해 빨간색 배경을 넣었다. 이것이 일어날 수있는 이유는 무엇입니까? maskToBounds 및 clipToBounds를 NO로 설정했습니다.UILabel 글자가 잘리고 있습니다.

CGSize lblSize = [FontHelper sizeForText:text withFont:[self getBodyFont] withWidth:kColumnWidth andNumberOfLines:1000]; 
      UILabel*lbl = [[UILabel alloc] initWithFrame:CGRectMake(x, 
                    y + body.frame.size.height - columnHeight - kBottomMargin, 
                    kColumnWidth, 
                    lblSize.height)]; 
      lbl.clipsToBounds = NO; 
      lbl.layer.masksToBounds = NO; 
      lbl.text = text; 
      lbl.backgroundColor = [UIColor redColor]; 
      lbl.font = [self getBodyFont]; 
      lbl.textColor = [UIColor blackColor]; 
      lbl.numberOfLines = 0; 
      lbl.textAlignment = UITextAlignmentLeft; 
      lbl.lineBreakMode = UILineBreakModeWordWrap; 
+0

내 생각 엔 kColumnWidth가 필요 이상입니다. 이 문제를 해결하는 데 도움이되는 Interface Builder에서이 뷰를 만들 것입니다. 참고 : 때로는 IB가 시각적으로 속일 수 있습니다. 라벨의 오른쪽 가장자리에 라운드 드래그 포인트가 표시되지 않으면 IB가 라벨이 화면보다 넓게 자동 크기 조정 된 것 같습니다. 크기 매개 변수를 다시 확인하고 픽셀 단위로 너비를 조정하여 다음 단어로 넘어갈 지점을 확인하십시오. 또한'adjustsFontSizeToFitWidth'를 일시적으로 설정하여 어떤 일이 발생하는지 봅니다. – darvids0n

+0

앱에 NIB 파일이 없으므로 IB에서이 파일을 빌드 할 수 없습니다. 나는 그것이 정말로 "•"과 관련이 있다고 믿고 "SizeWithFont"메서드는 올바르게 계산하지 않습니다. 가장 큰 문제는 clipsToBounds가이 작업을 수행하는 것입니다. – smcdrc

+0

프로그램 적으로 생성 된 뷰를 테스트 할 때처럼 시각적으로 IB에서 시각적으로 보입니까? – darvids0n

답변

1

해결책을 찾은 것 같습니다. 클라이언트는 Word Doc에서 위의 텍스트를 내게 주었고 복사하여 파일에 붙여 넣었습니다. 점과 텍스트 사이의 공간은 공백으로 보였지만 다른 특수 문자였습니다. 그래서 복사/붙여 넣기가 그 추악한 머리를 날려 버렸습니다.

+0

여기에 오는 모든 사람들 (나처럼 ...)은 Editor> Show Invisibles (Xcode에서 .m 또는 .h 파일을 편집 할 때)로 특수 문자 케이스 (문제를 컴파일하지 못하게 함)를 해결할 수 있습니다. –

1

이 질문에 걸림돌이되는 사람에게는 동일한 문제가 있었고 제 경우에는 UILabel에 몇 가지 탭 문자가있어서 같은 효과가있었습니다.