我希望将UITextField.text的左边距对齐到10Px。请建议我最好的方法?在roundedRect TesxtField中相同,其中文本从左开始10 px
几乎已经达到覆盖 - (CGRect)textRectForBounds:(CGRect)bounds.
现在问题是当TextField进入编辑模式时,他们的左边距重置为零.......
@implementation UITextField(UITextFieldCatagory)
- (CGRect)textRectForBounds:(CGRect)bounds {
CGRect theRect=CGRectMake(bounds.origin.x+10, bounds.origin.y, bounds.size.width-10, bounds.size.height);
return theRect;
}
答案 0 :(得分:4)
您可以尝试使用UITextField的实例方法drawTextInRect:
吗?
我认为您可以使用leftView
属性。
您可以将leftView
和rightView
添加到UITextfield。这些视图可用于显示图标,但如果它是一个空视图,它只会占用空间,这就是你想要的。
CGFloat leftInset = 5.0f;
UIView *leftView = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, leftInset, self.bounds.size.height)];
self.leftView = leftView;
self.leftViewMode = UITextFieldViewModeAlways;
[leftView release];
答案 1 :(得分:3)
你试过吗
-(CGRect)editingRectForBounds(CGRect)bounds;
答案 2 :(得分:2)
覆盖超级实现,并调整结果。这样您就不需要使用leftView和rightView进行计算(如果使用它们)。
- (CGRect)textRectForBounds:(CGRect)bounds {
CGRect ret = [super textRectForBounds:bounds];
ret.origin.x = ret.origin.x + 10;
ret.size.width = ret.size.width - 20;
return ret;
}
- (CGRect)editingRectForBounds:(CGRect)bounds {
return [self textRectForBounds:bounds];
}
答案 3 :(得分:0)
迅速:
let leftView:UIView = UIView(frame: CGRectMake(0, 0, 30, 1))
leftView.backgroundColor = UIColor.clearColor()
my_text_field.leftView = leftView;
my_text_field.leftViewMode = UITextFieldViewMode.Always;