可能重複:
Measuring the pixel width of a string in Objective C截斷NSString以適合大小?
我使用[字符串drawInRect:]的方法,並希望的字符串被截斷爲,將適合該尺寸的最大長度。這並不像找出每行有多少個字符那麼簡單,因爲每個字母都是不同的寬度。我想找到字符串不再可見的原因是我可以在字符串的末尾添加elipses。
可能重複:
Measuring the pixel width of a string in Objective C截斷NSString以適合大小?
我使用[字符串drawInRect:]的方法,並希望的字符串被截斷爲,將適合該尺寸的最大長度。這並不像找出每行有多少個字符那麼簡單,因爲每個字母都是不同的寬度。我想找到字符串不再可見的原因是我可以在字符串的末尾添加elipses。
你想在哪裏使用這個字符串?如果它在UILabel中,則可以使用NSLineBreakMode = NSLineBreakByTruncatingTail。
請參閱NSString Additions Reference中的drawInRect:withAttributes:
文檔。在「常量」,你會發現一個選擇,做你自動想要什麼:
NSStringDrawingTruncatesLastVisibleLine
截斷並添加省略號最後可見行,如果文本不適合指定的邊界。
如果@Mundi給出的解決方案是不夠的,或者您需要知道多少文本適合你可以使用。
- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size
在一個循環中減少文本的大小,直到它適合。
標記爲重複的問題解釋瞭如何測量NSString,而不是如何截斷它。 – picciano
這裏有一個方法:' - (NSString *)stringByTruncatingToWidth:(CGFloat)寬度屬性:(NSDictionary *)textFontAttributes CGSize size = [self sizeWithAttributes:textFontAttributes];如果(size.width <= width){ return self; } 的for(int i = 2; I
picciano