Как установить содержимое вставки для UITextView в IOS

У меня UITextView и установить вкладку содержимого как

[atextView setContentInset:UIEdgeInsetsMake(0, 10, 0, 0)];

Этот код работает в iOS 6.1 и ниже, но в iOS 7.0 ничего не происходит.

2 ответа

Решение

Получил ответ:

[atextView  setTextContainerInset:UIEdgeInsetsMake(7, 7, 0, 0)];

исправил мою проблему.

И в Свифте...

@IBOutlet var tv:UITextView!
override func awakeFromNib()
    {
    super.awakeFromNib()
    tv.textContainerInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0);
    }

ОБНОВЛЕНИЕ: еще один вариант сделать это.

UIView *spacerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, 10)];
[msgtext setLeftViewMode:UITextFieldViewModeAlways];
[msgtext setLeftView:spacerView];

Альтернативный и, возможно, немного более удобный способ сделать это, создав подкласс UITextField и добавив свойство @IBInspectable inset.

import UIKit

class UITextfieldWithInset: UITextField {

    @IBInspectable
    var textfieldInset: CGPoint = CGPointMake(0, 0)

    override func textRectForBounds(bounds: CGRect) -> CGRect {
        return CGRectInset(bounds, textfieldInset.x, textfieldInset.y)
    }

    override func editingRectForBounds(bounds: CGRect) -> CGRect {
        return CGRectInset(bounds, textfieldInset.x, textfieldInset.y)
    }

    override func placeholderRectForBounds(bounds: CGRect) -> CGRect {
        return CGRectInset(bounds, textfieldInset.x, textfieldInset.y)
    }

}
Другие вопросы по тегам