IOS - удалить ВСЕ отступы из UITextView
На SO есть много прекрасных примеров, чтобы удалить левое дополнение UITextView.
Как потерять margin/padding в UITextView?
Однако мне также нужно удалить правое дополнение.
Я пробовал...
[tv setContentInset: UIEdgeInsetsMake(-4,-8,-8,-X)];//where X is any integer
и почти каждая перестановка двух последних значений для удаления прокладки и ничего не работает. Также попробовали
[tv sizeToFit];
[tv setTextAlignment:[NSTextAlignmentRight]];
Следующий текст в текстовом виде говорит "00"
![enter image description here]()
Ответы
Ответ 1
Хотя это только iOS 7, чрезвычайно чистое решение - установить textView textContainerInsets как таковой:
[textView setTextContainerInset:UIEdgeInsetsZero];
textView.textContainer.lineFragmentPadding = 0; // to remove left padding
Это эффективно удалит все отступы (вставки) вокруг текста внутри текстового вида. Если целью развертывания является iOS 7+, тогда это лучшее решение.
Ответ 2
Чтобы полностью удалить все дополнения, необходимо учитывать lineFragmentPadding
.
let padding = textView.textContainer.lineFragmentPadding
textView.textContainerInset = UIEdgeInsetsMake(0, -padding, 0, -padding)
Значение lineFragmentPadding
по умолчанию равно 5 и находится в начале и конце прямоугольника фрагмента.
В некоторых ответах предлагается установить lineFragmentPadding
в 0. Однако, как обсуждалось в документе, он не предназначен для выражения полей текста. Поэтому не устанавливайте его на 0.
Ответ 3
Попробуйте подклассифицировать UITextView и переопределить следующий метод:
- (id)styleString
{
return [[super styleString] stringByAppendingString:@"; line-height: 1.6em;margin-right: 30px; margin-left: 0px; margin-top: 0px;"];
}
По-видимому, вы можете настроить маржу-левую, margin-top и все, что хотите;)
Ответ 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