UITextView的textContainerInset属性没有遵循底部插图值。

14

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

我想在文本和视图之间创建一些填充,但是它并没有完全起作用。如果我这样做...

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

如果设置了左右padding,那么顶部和底部就没有空间了。这是正确的。我现在要加入一个顶部的插图:

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

现在顶部有15个点的填充,但突然间底部也被填充了一些(大约10个点)。

如果我再添加15个点的底部填充,那么底部就会变得太大,而且周围的间距也不一样。相反,我必须调整它:

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

这是iOS 7的一个bug还是我理解有误?我不想在不了解情况的情况下弄虚作假。


你解决了吗?我也卡在同一个问题上。看到很多相同的问题,但还没有解决方案 :/ - glogic
不,我暂时在虚拟化。 - tarmes
这里也有问题。有解决方案吗? - Mason
2个回答

4

我不确定是什么原因,但我遇到了同样的问题,似乎是苹果出现了一个bug。我正在iOS7.1上进行测试。

在我的情况下,我正在尝试向顶部和底部添加一些插图,例如:

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

正如原问题所述,底部的100个插图似乎被忽略了。 我发现可以这样做:
view.textContainerInset=UIEdgeInsetsMake(100, 1, 100, 0);

这给了我期望的底部插入。我可以接受左侧(所谓的)1点插入,所以我将使用这个解决方法,理论上应该在当前版本的iOS下工作,并且一旦他们修复了这个漏洞,不会完全破坏。当然,我也会提交一个错误报告。


1

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

如果插入物的 leftright 均为 0,则底部不受尊重。

如果左侧或右侧的任何属性不为 0,则会予以尊重:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接