【问题标题】:UITextView Text cut off when using setContentInset使用 setContentInset 时 UITextView 文本被截断
【发布时间】:2012-12-16 06:17:17
【问题描述】:

我正在尝试将 UITextView 中的文本右移 20 像素,以使用下面的代码创建文本缩进

[textview setContentInset:UIEdgeInsetsMake(0, 20, 0,-20)];

但这会切断我文本的右侧,如屏幕截图所示。任何人都可以帮助我阻止这种情况发生

【问题讨论】:

  • 请看这个 SO 答案:stackoverflow.com/a/12357042/312312
  • 我认为答案是针对 TextField 而不是 TextView?
  • 实际上它并没有像我提供的解决方案那样工作,因为它没有正确设置 UITextView 中的插入符号。我要删除解决方案。
  • 另一个问题是文本区域的宽度在水平旋转时没有扩大
  • 您仍然可以在代码中绘制它们。但是将它们添加到 UITextView 下方的单独视图中。 carret 位置不正确。文本被添加到光标的实际位置下方,使用我提供的最新解决方案来克服编辑文本时的问题

标签: objective-c ios uitextview


【解决方案1】:

即使通过子类化 UITextView 并阻止似乎是问题的 setContentSize,我也找不到解决您问题的方法。

[textview setContentInset:UIEdgeInsetsMake(0, 20, 0, rightInset)];

无论 rightInset 的值是多少,文本总是被裁剪。有些东西总是在重绘文本,以使其适合文本视图的框架宽度。 但我想知道为什么你需要设置插图?难道你不能只将 UITextView 对象的背景设置为清除颜色并将其正确放置在背景视图上以获得缩进的错觉吗?

【讨论】:

    【解决方案2】:

    我认为您的边缘插图有点偏离。边缘插图朝向矩形的中间。对于正确的插图,您应该尝试 20 而不是 -20。

    [textview setContentInset:UIEdgeInsetsMake(0, 20, 0, 20)];
    

    【讨论】:

    • 谢谢,但这只会使视图宽 40 像素。
    猜你喜欢
    • 1970-01-01
    • 2013-05-26
    • 2017-02-02
    • 1970-01-01
    • 2010-11-23
    • 2013-09-12
    • 2013-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多