IOS - 从UITextView中删除所有填充

时间:2013-04-05 00:26:54

标签: ios uitextview padding

在SO上有许多很好的例子来删除UITextView的左边距。

How to lose margin/padding in UITextView?

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

我试过......

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

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

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

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

enter image description here

6 个答案:

答案 0 :(得分:156)

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

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

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

答案 1 :(得分:14)

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

let padding = textView.textContainer.lineFragmentPadding
textView.textContainerInset = UIEdgeInsetsMake(0, -padding, 0, -padding)

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

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

答案 2 :(得分:10)

用于OA的Swift 4版本

self.tDescription.textContainerInset = UIEdgeInsets.zero
self.tDescription.textContainer.lineFragmentPadding = 0

答案 3 :(得分:7)

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

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

显然;你可以调整保证金左边,保证金顶部和无论你想要什么;)

答案 4 :(得分:1)

适用于 Swift 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)

来自官方Documentation

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

无论如何,文本容器的 textContainerOrigin 和大小对于文本容器在视图中的位置具有权威性。 文本本身可以在文本容器内有一个额外的插图,由 lineFragmentPaddingNSTextContainer 方法指定。

答案 5 :(得分:-2)

我的问题以这种方式解决了

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

了解更多信息,请参阅http://foobarpig.com/iphone/get-rid-of-uitextview-padding.html