2014-01-25 81 views
0

我有一個NSString與任意數量的字符。 現在魔杖把這個字符串繪製成矩形。該矩形需要例如250像素寬。獲取文本高度取決於寬度

我用魔杖知道如何獲得具有特定字體和大小的文本 的高度。

+0

請參閱'NSString'的'UIStringDrawing'類別中的方法。 – rmaddy

回答

-1

從的NSString UIKit的添置(https://developer.apple.com/library/ios/documentation/uikit/reference/NSString_UIKit_Additions/DeprecationAppendix/AppendixADeprecatedAPI.html#//apple_ref/occ/instm/NSString/sizeWithFont:constrainedToSize :)

使用 sizeWithFont:constrainedToSize:lineBreakMode:

使用它在你使用約束帶250在您的情況下,寬度和一些非常高的一種方式高度的數量(比方說10000)。 然後它返回實際的寬度(可能略小於250)和所需的高度。

但請注意,它最近已棄用。您可以使用 boundingRectWithSize:options:attributes:context: 從iOS 7開始。通常不贊成使用的方法存在一段時間,但不能依賴於此。因此,如果您希望自己的應用在iOS 6或更早版本中運行,那麼您可能需要使用已棄用的方法一段時間,或者您可以檢查操作系統,並使用舊方法或新方法繼續前進。

如果您使用的是OS-X而不是iOS,則表示抱歉。在那種情況下,我的回答根本沒有幫助。你沒有標記操作系統。

+0

他用UITextView標記,這當然是iOS的 –

+0

'sizeWithFont'在iOS 7中已被棄用。http://stackoverflow.com/questions/18897896/replacement-for-deprecated-sizewithfont-in-ios-7 – swilliams

+0

@swilliams,正確的,它已被棄用,已在答案中予以考慮。 –

-1

你可以使用的高度和寬度「sizeWithFont:」法,如下所示:

UIFont *myFont = [UIFont boldSystemFontOfSize:15.0]; 

// Get the width of a string ... 
CGSize size = [@"Some string here!" sizeWithFont:myFont]; 

CGSize是C結構,這樣就可以訪問的高度和寬度如下:

// Print height and width 
    NSLog(@"h: %f \t w:%f", size.height, size.width); 
+0

'sizeWithFont'已在iOS 7中棄用。http://stackoverflow.com/questions/18897896/replacement-for-deprecated-sizewithfont-in-ios-7 – swilliams