1 iphone cocoa-touch objective-c uikit
我有一个NSString,并希望将其适合矩形.矩形具有指定的大小,例如width = 150和height = 30.当String很短并且只有一个字符时,它可以和矩形一样高.更具体:它可以有一个很大的字体大小.但是如果字符串有太多字符并且超出矩形的边界,它必须变小.更具体:它的字体大小必须变小,以便它不会超过矩形的边界.有没有一种方法可以做到这一点,而不会搞乱核心图形?
出于某种原因,UILabel的adjustsFontSizeToFitWidth属性无效.即使有足够的空间,文本仍然很小.
我已经设定了
label.adjustsFontSizeToFitWidth = YES;
Run Code Online (Sandbox Code Playgroud)
但没有任何反应.我希望有另一种方法可以做到这一点......
有几个部分可以UILabel使这成为可能,但首先你必须知道是否要截断字符串或使字体大小更小以适应矩形.
对于这两种情况,您都需要将UILabel's numberOfLines属性设置为0,允许标签尽可能多地换行.然后,你要设置frame的UILabel匹配你正在寻找适合的矩形.从那里你可以选择两条路径之一:
lineBreakMode财产UILineBreakModeClip,UILineBreakModeHeadTruncation,UILineBreakModeTailTruncation,或UILineBreakModeMiddleTruncation依赖于截断行为,你要寻找的.lineBreakMode为UILineBreakModeWordWrap或者"UILineBreakModeCharacterWrap".然后你需要输入一个循环来确定正确的字体大小.从合理的字体大小开始(例如,12)和:
font的属性UILabel与UIFont该该尺寸相匹配- (void) sizeToFit的UILabel.frame为UILabel:
对于后一个选项,您需要确保不要将文本压缩为遗忘,因此您需要在字体大小上设置最小大小.
| 归档时间: |
|
| 查看次数: |
2671 次 |
| 最近记录: |