78

SO上有很多很好的例子来删除UITextView的左填充。

如何在 UITextView 中丢失边距/填充?

但是,我也需要删除正确的填充。

我试过了...

[tv setContentInset: UIEdgeInsetsMake(-4,-8,-8,-X)];//where X is any integer

并且几乎所有其他最后两个值的排列都删除了填充,似乎没有任何效果。也试过

[tv sizeToFit];
[tv setTextAlignment:[NSTextAlignmentRight]];

Textview 中的以下文本显示“00”

在此处输入图像描述

4

6 回答 6

227

虽然它只是 iOS 7,一个非常干净的解决方案是将 textView 的 textContainerInsets 设置为:

[textView setTextContainerInset:UIEdgeInsetsZero];
textView.textContainer.lineFragmentPadding = 0; // to remove left padding

这将有效地删除文本视图内文本周围的所有填充(插图)。如果您的部署目标是 iOS 7+,那么这是迄今为止最好的解决方案。

于 2013-11-28T15:27:54.493 回答
44

要完全删除所有填充,lineFragmentPadding必须考虑到。

let padding = textView.textContainer.lineFragmentPadding
textView.textContainerInset =  UIEdgeInsets(top: 0, left: -padding, bottom: 0, right: -padding)

lineFragmentPadding默认值为 5,位于片段矩形的开头和结尾。

一些答案建议设置lineFragmentPadding为 0。但是,根据文档中的讨论,它并非旨在表达文本边距。所以不要设置为0。

于 2016-10-06T04:44:18.280 回答
21

用于 OA 的 Swift 4 版本

self.tDescription.textContainerInset = UIEdgeInsets.zero
self.tDescription.textContainer.lineFragmentPadding = 0
于 2020-01-08T04:05:09.007 回答
8

对于 iOS 11.7

以下代码对我有用:

    textView.textContainer.lineFragmentPadding = CGFloat(0.0)
    textView.textContainerInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0)
    textView.contentInset = UIEdgeInsets(top: 0,left: 0,bottom: 0,right: 0)

来自官方文档

textContainerInset :可以设置文本容器和视图大小以及调整大小行为,以便inset无法准确维护,尽管文本系统会尽可能地维护inset

在任何情况下,textContainerOrigin文本容器的大小对于文本容器在视图中的位置都是权威的。文本本身可以在文本容器内有一个额外的插图,lineFragmentPaddingNSTextContainer.

于 2021-02-22T12:28:57.023 回答
7

请尝试对 UITextView 进行子类化并覆盖以下方法:

    - (id)styleString
{
    return [[super styleString] stringByAppendingString:@"; line-height: 1.6em;margin-right: 30px; margin-left: 0px; margin-top: 0px;"];
}

显然; 你可以调整margin-left、margin-top和任何你想要的;)

于 2013-04-09T04:31:06.777 回答
-4

我的问题就这样解决了

if([Utils isiOS7orHigher]){
    commentView.textContainerInset = UIEdgeInsetsZero;
}else {
    commentView.contentInset = UIEdgeInsetsMake(-11,-8,0,0);
}

有关更多信息,请参见http://foobarpig.com/iphone/get-rid-of-uitextview-padding.html

于 2014-07-21T08:14:20.540 回答