我有一个显示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的错误还是我误解了什么?我不喜欢在不了解正在发生的事情的情况下捏造最低价值。
答案 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 left
和right
为0,则不会尊重底部。
如果左或右的任何属性不是0,则会被尊重:
_title.textContainerInset = UIEdgeInsetsMake( dy, 0, dy, 0.001);