我有一个UITextView并将内容设置为
[atextView setContentInset:UIEdgeInsetsMake(0, 10, 0, 0)];
此代码适用于iOS 6.1及更低版本,但iOS 7.0中没有任何内容。
答案 0 :(得分:131)
得到答案:
[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];
答案 1 :(得分:1)
通过继承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)
}
}