我正在尝试使用自定义文本字段背景。问题在于该文本在左侧似乎太靠近了。
如果没有子类化UITextField,我看不到任何移动文本的方法。所以我正在尝试扩展和覆盖
- (void)drawTextInRect:(CGRect)rect{
NSLog(@"draw rect");
CGRect newRect = CGRectMake(rect.origin.x+20,rect.origin.y,rect.size.width-20,rect.size.height);
[super drawTextInRect:newRect];
}
但是由于某种原因,日志永远不会打印。我知道正在使用子类,因为我在init中也有一个日志,并且可以正常打印。
挥舞着
编辑。
我也尝试
- (CGRect)textRectForBounds:(CGRect)bounds{
NSLog(@"bounds");
CGRect b = [super textRectForBounds:bounds];
b.origin.x += 20;
return b;
}
这实际上可以追溯,但似乎并没有改变
最佳答案
我认为您可以为此使用leftView
属性。
您可以将leftView
和rightView
添加到UITextfield。这些 View 可用于显示图标,但是如果它是空 View ,则仅会占用空间,这就是您想要的。
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];