Iphone 如何将字符串放入矩形中?
我有一个字符串,想把它放进一个矩形中。矩形有一个指定的大小,比如宽度=150,高度=30。当字符串很短且只有一个字符时,它可以与矩形一样高。更具体地说:它可以有一个大的字体大小。但是,如果字符串的字符太多,并且会超出矩形的边界,则它必须变小。更具体地说:它的字体大小必须变小,这样就不会超过矩形的边界。有没有一种方法可以在不影响核心图形的情况下做到这一点 出于某些原因,UILabel的adjustsFontSizeToFitWidth属性无效。即使有足够的空间,文本仍然保持小 我已经设定好了Iphone 如何将字符串放入矩形中?,iphone,objective-c,cocoa-touch,uikit,Iphone,Objective C,Cocoa Touch,Uikit,我有一个字符串,想把它放进一个矩形中。矩形有一个指定的大小,比如宽度=150,高度=30。当字符串很短且只有一个字符时,它可以与矩形一样高。更具体地说:它可以有一个大的字体大小。但是,如果字符串的字符太多,并且会超出矩形的边界,则它必须变小。更具体地说:它的字体大小必须变小,这样就不会超过矩形的边界。有没有一种方法可以在不影响核心图形的情况下做到这一点 出于某些原因,UILabel的adjustsFontSizeToFitWidth属性无效。即使有足够的空间,文本仍然保持小 我已经设定好了 la
label.adjustsFontSizeToFitWidth = YES;
但什么也没发生。我希望有另一种方法可以做到这一点。UILabel有几个部分可以做到这一点,但首先您必须知道是否要截断字符串或减小字体大小以适合矩形 对于这两种情况,您都需要将
UILabel
的numberOfLines
属性设置为0
,允许标签根据需要进行包装。然后,您需要设置UILabel
的框架
,以匹配您想要匹配的矩形。从那里,您可以选择两条路径中的一条:
- 截断:根据您要查找的截断行为,将
属性设置为lineBreakMode
,UILineBreakModeClip
,UILineBreakModeHeadTruncation
或UILineBreakModeTailTruncation
李>UILineBreakModeMiddleTruncation
- 调整大小:根据您的偏好,将
设置为lineBreakMode
或'UILineBreakModeCharacterWrap'。然后需要输入一个循环以确定正确的字体大小。从合理的字体大小(如12)开始,并:uilinebreakmodewrap
- 使用与该大小匹配的
设置UIFont
的UILabel
属性font
- 调用
以获取-(void)sizeToFit
UILabel
- 检查
中的框架
:ui标签
- 如果框架符合您需要的范围,那么就完成了
- 如果框架仍然太大,请降低字体大小并重复循环
- 使用与该大小匹配的
您可以从和文档中获得更多信息。UILabel有几个部分可以实现这一点,但首先您必须知道是否要截断字符串或减小字体大小以适合矩形 对于这两种情况,您都需要将
UILabel
的numberOfLines
属性设置为0
,允许标签根据需要进行包装。然后,您需要设置UILabel
的框架
,以匹配您想要匹配的矩形。从那里,您可以选择两条路径中的一条:
- 截断:根据您要查找的截断行为,将
属性设置为lineBreakMode
,UILineBreakModeClip
,UILineBreakModeHeadTruncation
或UILineBreakModeTailTruncation
李>UILineBreakModeMiddleTruncation
- 调整大小:根据您的偏好,将
设置为lineBreakMode
或'UILineBreakModeCharacterWrap'。然后需要输入一个循环以确定正确的字体大小。从合理的字体大小(如12)开始,并:uilinebreakmodewrap
- 使用与该大小匹配的
设置UIFont
的UILabel
属性font
- 调用
以获取-(void)sizeToFit
UILabel
- 检查
中的框架
:ui标签
- 如果框架符合您需要的范围,那么就完成了
- 如果框架仍然太大,请降低字体大小并重复循环
- 使用与该大小匹配的
您可以从和文档中获得更多信息。调整字体大小调整字体宽度将字体大小向下调整,而不是向上调整
将UILabel上的字体设置为适当的大尺寸,UILabel将在必要时缩小字体以适应其边界。
adjustsFontSizeToFitWidth
将字体大小向下调整,而不是向上调整
将UILabel上的字体设置为适当的大尺寸,UILabel将在必要时缩小字体以适应其边界
minimumFontSize
property)adjustsFontSizeToFitWidth
设置为
是
lineCount
设置为0
minimumFontSize
property)adjustsFontSizeToFitWidth
设置为
是
如果您需要多行,请按照另一张海报上的说明将
lineCount
设置为0。您所说的更小是什么意思?您的意思是截断字符串吗?字体较小/不截断。更新了更详细的问题你说的更小是什么意思?您的意思是截断字符串吗?字体较小/不截断。更详细地更新了问题