2013-09-30 4 views
0

다음는 NSString 방법은 아이폰 OS 7에서 사용되지 않습니다 교체 :sizeWithFont :

- (CGSize)sizeWithFont:(UIFont *)font NS_DEPRECATED_IOS(2_0, 7_0, "Use -sizeWithAttributes:"); 

    - (CGSize)sizeWithFont:(UIFont *)font forWidth:(CGFloat)width lineBreakMode: 
(NSLineBreakMode)lineBreakMode NS_DEPRECATED_IOS(2_0, 7_0, "Use -boundingRectWithSize:options:attributes:context:"); 

    - (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size NS_DEPRECATED_IOS(2_0, 7_0, "Use -boundingRectWithSize:options:attributes:context:"); 

    - (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(NSLineBreakMode)lineBreakMode NS_DEPRECATED_IOS(2_0, 7_0, "Use -boundingRectWithSize:options:attributes:context:"); 

첫 번째의 교체가 간단하지만, 나머지는 그다지. 정확히 같은 결과를 얻으려면 boundingRectWithSize:options:attributes:context:에 해당하는 전화는 무엇입니까? 특히

:

  • 은 무엇 options의 값이어야 하는가?
  • lineBreakMode은 어떻게 지정합니까?
+0

나는이 문제가이 질문은 (광산에 대한 답변의 대부분을 포함 그것은 주목해야한다 내년 – Stavash

+0

에 대한 SO 연료 예정임을 느낌이 추가 심지어 경우 범위가 다름) : http://stackoverflow.com/questions/18897896/replacement-for-deprecated-sizewithfont-in-ios-7?rq=1. 아마도 다른 질문에 대한보다 상세한 대답이 더 적절할 것입니다. 나는 경우에 대비하여 내 자신의 질문을 닫으려고 투표하고 있습니다. – hpique

답변

1

. 어떻게 LineBreakMode를 지정합니까?

NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; 
[paragraphStyle setLineBreakMode:NSLineBreakByTruncatingTail]; 
[attributedStr addAttribute:NSParagraphStyleAttributeName 
       value:paragraphStyle 
       range:NSMakeRange(0,[attributedStr length])]; 
1

UIFont *font = [UIFont boldSystemFontOfSize:16]; 
CGRect new = [string boundingRectWithSize:CGSizeMake(200, 300) options:NSStringDrawingUsesFontLeading attributes:@{NSFontAttributeName: font} context:nil]; 
CGSize stringSize= new.size; 
관련 문제