UILineBreakModeWordWrap은 더 이상 사용되지 않습니다.


83

내 코드는 다음과 같습니다.

CGSize s = [string sizeWithFont:[UIFont systemFontOfSize:20]
               constrainedToSize:CGSizeMake(self.view.bounds.size.width - 40, CGFLOAT_MAX) // - 40 For cell padding
                   lineBreakMode:UILineBreakModeWordWrap];

UILinebBreakModeWordWrap이 iOS 6에서 더 이상 사용되지 않는다는 경고가 표시됩니다.

답변:


204

NSLineBreakByWordWrappingiOS 6에서 사용해야합니다 .

코드를 보려면 다음을 시도하십시오.

NSString *string = @"bla";

CGSize s = [string sizeWithFont:[UIFont systemFontOfSize:20]
              constrainedToSize:CGSizeMake(self.view.bounds.size.width - 40, CGFLOAT_MAX) // - 40 For cell padding
                  lineBreakMode:NSLineBreakByWordWrapping];

라벨의 예는 다음과 같습니다.

[label setLineBreakMode:NSLineBreakByWordWrapping];

대신에

label.lineBreakMode = UILineBreakModeWordWrap;

1
왜 애플이 이름을 바꾸었을까요? 목적은 무엇입니까?
Paul Brewczynski 2014

14

이전 버전과의 호환성을 유지하기 위해 아래와 같이 매크로를 만들 수 있습니다.

#ifdef __IPHONE_6_0
# define LINE_BREAK_WORD_WRAP NSLineBreakByWordWrapping
#else
# define LINE_BREAK_WORD_WRAP UILineBreakModeWordWrap
#endif

매크로가있는 경우 Xcode가 여전히 경고를 표시하는 이유는 무엇입니까?
윌리엄 GP

최소 SDK <= ios 6이 있습니까? swift 또는 Objective-C를 사용합니까?
Mihriban Minaz

SDK는 최소의 대상이 iOS7에 인,의 Obj-C 9.2이다
윌리엄 GP

그런 다음 NSLineBreakByWordWrapping을 직접 사용하십시오.
Mihriban Minaz
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.