Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSTextContainer的usedRectForTextContainer返回的高度不正确_Ios_Objective C_User Interface - Fatal编程技术网

Ios NSTextContainer的usedRectForTextContainer返回的高度不正确

Ios NSTextContainer的usedRectForTextContainer返回的高度不正确,ios,objective-c,user-interface,Ios,Objective C,User Interface,我试图通过以下代码获得在给定文本容器中显示文本所需的矩形大小: s = [manager usedRectForTextContainer:container].size; 我希望文本是多行的,但它会在一行的末尾截断,而不会显示下一行的内容。只有当有几个额外的字符时才会发生这种情况;在一行大约60个字符中,将有大约10或15个剩余字符应该显示在下一行中,但不会显示 这可能是插图的问题吗?也许是文字包装?我真的不确定,因为我对iOS和UI编程都是新手 编辑:在上面的代码中,管理器是一个NSLay

我试图通过以下代码获得在给定文本容器中显示文本所需的矩形大小:

s = [manager usedRectForTextContainer:container].size;
我希望文本是多行的,但它会在一行的末尾截断,而不会显示下一行的内容。只有当有几个额外的字符时才会发生这种情况;在一行大约60个字符中,将有大约10或15个剩余字符应该显示在下一行中,但不会显示

这可能是插图的问题吗?也许是文字包装?我真的不确定,因为我对iOS和UI编程都是新手

编辑:在上面的代码中,管理器是一个
NSLayoutManager
,容器是一个
NSTextContainer

我很确定这个函数的输出是个问题,因为在这个函数调用之后,如果我将s的值更改为我期望的值,我会得到预期的布局,并显示整个字符串

有关布局管理器的信息如下所示

<NSLayoutManager: 0xd203f60>
    1 containers, text backing has 140 characters
    Currently holding 140 glyphs.
    Glyph tree contents:  140 characters, 140 glyphs, 1 nodes, 32 node bytes, 384 storage bytes, 416 total bytes, 2.97 bytes per character, 2.97 bytes per glyph
    Layout tree contents:  140 characters, 140 glyphs, 62 laid glyphs, 2 laid line fragments, 3 nodes, 96 node bytes, 856 storage bytes, 952 total bytes, 6.80 bytes per character, 6.80 bytes per glyph, 31.00 laid glyphs per laid line fragment, 476.00 bytes per laid line fragment

1个容器,文本背景有140个字符
目前拥有140个字形。
字形树内容:140个字符,140个字形,1个节点,32个节点字节,384个存储字节,416个总字节,每个字符2.97字节,每个字形2.97字节
布局树内容:140个字符,140个标志符号,62个放置标志符号,2个放置线片段,3个节点,96个节点字节,856个存储字节,952个总字节,每个字符6.80字节,每个标志符号6.80字节,每个放置线片段31.00个放置标志符号,每个放置线片段476.00字节

我希望在这种情况下有三行,但看起来只有两行片段,这意味着问题可能出在我的布局管理器中?

您正在创建自己的文本容器,但还需要对其进行配置。您需要设置lineBreakMode和可能需要显示的行数

就你而言,我很漂亮

textContainer.lineFragmentPadding = 0.0
textContainer.lineBreakMode = label.lineBreakMode
textContainer.maximumNumberOfLines = label.numberOfLines