UITextView textContainerInset不尊重底部插入值

时间:2013-10-17 09:13:57

标签: ios7 uitextview textkit

我有一个显示NSAttributedString的UIView。它设置为调整大小以适应其内容。

我想在文本和视图之间创建一些填充,但它不是很有效。如果我这样做......

view.textContainerInset = UIEdgeInsetsMake(0, 15, 0, 15);

...然后左右边缘被填充,顶部和底部没有空间。这是对的。然后我添加了一个顶部插图:

view.textContainerInset = UIEdgeInsetsMake(15, 15, 0, 15);

现在顶部有15分填充,但突然底部也有一点填充(大约10分)。

如果我再添加15个底部填充,则底部变得太大而且间距不一样。相反,我必须捏造它:

view.textContainerInset = UIEdgeInsetsMake(15, 15, 5, 15);

这是iOS 7的错误还是我误解了什么?我不喜欢在不了解正在发生的事情的情况下捏造最低价值。

2 个答案:

答案 0 :(得分:3)

我不知道是什么给了我,但我遇到了同样的问题,似乎是苹果公司的一个错误。我在iOS7.1上进行测试。

在我的特定情况下,我试图在顶部和底部添加一些插图,例如。

view.textContainerInset=UIEdgeInsetsMake(100, 0, 100, 0);

正如最初的问题所述,100的底部插图似乎被忽略了。 我偶然发现的是我能做到这一点:

view.textContainerInset=UIEdgeInsetsMake(100, 1, 100, 0);

这给了我预期的底部插图。我可以忍受左边的(据称的)1点插图,因此我将使用它作为一种解决方法,理论上应该在当前版本的iOS下工作,并且一旦修复bug就不会完全破坏。我当然也会提交错误报告。

答案 1 :(得分:0)

仍然存在于iOS 8.4(模拟器)中。

如果Inset leftright为0,则不会尊重底部。

如果左或右的任何属性不是0,则会被尊重:

_title.textContainerInset = UIEdgeInsetsMake( dy, 0, dy, 0.001);