IOS - remove ALL padding from UITextView

后端 未结 5 1941
醉酒成梦
醉酒成梦 2021-01-30 06:22

There are many great examples on SO to remove the left padding of a UITextView.

How to lose margin/padding in UITextView?

However, I need to remove the right pad

相关标签:
5条回答
  • 2021-01-30 06:53

    My problem is solved this way

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

    for more see http://foobarpig.com/iphone/get-rid-of-uitextview-padding.html

    0 讨论(0)
  • 2021-01-30 06:55

    To completely remove all padding, the lineFragmentPadding must be taken into account.

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

    The lineFragmentPadding default value is 5, and is at the beginning and end of fragment rectangle.

    Some answers suggested setting lineFragmentPadding to 0. However, as per discussed in the doc, it is not designed to express text margins. So do not set it to 0.

    0 讨论(0)
  • 2021-01-30 07:03

    Although it is iOS 7 only, an extremely clean solution is to set the textView's textContainerInsets as such:

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

    This will effectively remove all padding (insets) around the text inside the text view. If your deployment target is iOS 7+ then this is the best solution thus far.

    0 讨论(0)
  • 2021-01-30 07:05

    Swift 4 version for the OA

    self.tDescription.textContainerInset = UIEdgeInsets.zero
    self.tDescription.textContainer.lineFragmentPadding = 0
    
    0 讨论(0)
  • 2021-01-30 07:14

    Please try sub-classing the UITextView and overriding the following method:

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

    Apparently; you can tweak the margin-left, margin-top & whatever you want ;)

    0 讨论(0)
提交回复
热议问题