Как установить вставку содержимого для UITextView в ios У меня есть UITextView и установка вставки содержимого как [atextView setContentInset:UIEdgeInsetsMake(0, 10, 0, 0)]; Этот код работает в iOS 6.1 и ниже, но ничего не происходит в iOS 7.0. Ответ 1 получил ответ: [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]; Ответ 2 Альтернативный и, возможно, немного более удобный способ сделать это, подклассифицируя UITextField и добавляя свойство вставки @IBInspectable. 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) } }
Ответ 1 получил ответ: [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];
Ответ 2 Альтернативный и, возможно, немного более удобный способ сделать это, подклассифицируя UITextField и добавляя свойство вставки @IBInspectable. 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) } }