"아름다운 시내 볼티모어시에 위치"와 같이 긴 문자열을 고려하십시오.UILabel : 텍스트의 일부분에만 줄 바꿈 모드 적용
내 레이블이 텍스트에 너무 작고, 현재 다음과 같이 표시합니다 :
내가 위치 문자열이 중심이 문자열 "에 위치한"잘라 내지 않고 를 절단하고 싶습니다, 이 같은 :
아름다운에 위치한... ltimore 도시
UILabel class reference이 가능해야한다 나타냅니다
는 하나의 UILabel의로, 나는 다음과 같은 코드로 다음 지침을 따르 시도 :는당신은 텍스트의 일부에 줄 바꿈 모드를 적용하여 원하는 스타일 정보와 새로운 기인 문자열을 생성하고 라벨과 연결하려면
. 스타일이 지정된 텍스트를 사용하지 않는 경우이 속성은 텍스트 속성의 전체 텍스트 문자열에 적용됩니다. 샘플 프로젝트에서
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *firstPart = @"Located in";
NSString *secondPart = @"beautiful downtown Baltimore City";
NSString *joined = [NSString stringWithFormat:@"%@ %@", firstPart, secondPart];
NSMutableAttributedString *joinedAttributed = [[NSMutableAttributedString alloc] initWithString:joined];
NSMutableParagraphStyle *style = [[NSMutableParagraphStyle alloc] init];
style.lineBreakMode = NSLineBreakByTruncatingMiddle;
NSRange detailRange = [joined rangeOfString:secondPart];
[joinedAttributed addAttribute:NSParagraphStyleAttributeName value:style range:detailRange];
self.label.attributedText = joinedAttributed;
}
내 레이블은 여전히 끝의 절단과 같은 나타납니다. 여기
최종 결과는 디버거에서 어떻게 표시되는지를 보여줍니다 :
(lldb) po joinedAttributed
Located in {
}beautiful downtown Baltimore City{
NSParagraphStyle = "Alignment 4, LineSpacing 0, ParagraphSpacing 0, ParagraphSpacingBefore 0, HeadIndent 0, TailIndent 0, FirstLineHeadIndent 0, LineHeight 0/0, LineHeightMultiple 0, LineBreakMode 5, Tabs (\n 28L,\n 56L,\n 84L,\n 112L,\n 140L,\n 168L,\n 196L,\n 224L,\n 252L,\n 280L,\n 308L,\n 336L\n), DefaultTabInterval 0, Blocks (null), Lists (null), BaseWritingDirection -1, HyphenationFactor 0, TighteningFactor 0, HeaderLevel 0";
}
사람이이 작업을받은 적이 있습니까? 구현에서 누락 된 부분은 무엇입니까?
UILabel의 lineBreakMode를 NSLineBreakByTruncatingMiddle로 설정해 보셨습니까? 귀착 된 텍스트로 원숭이를하지 않고도 원하는 것을 얻는 것처럼 보입니다. –
예; 이것은 전체 문자열을 자릅니다. 원하는 결과는 부분 문자열 ('secondPart')을 자릅니다. –
글쎄, 당신은 라벨에 대한 lineBreakMode 설정 스타일을 시도 해 봤나? –