如何给iOS的UITextField填充?
我想给左边填充文本字段。我已经添加了一个背景图像到文本字段,由于文本字段中的文本总是从最左边缘开始。我尝试了下面的解决scheme,但是这不适用于太多的文本字段。
UIView *fieldEmail = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, 10)]; self.txt_fname.leftViewMode = UITextFieldViewModeAlways; self.txt_fname.leftView = fieldEmail;
请build议我一些简单的解决scheme,我不必创build一个单独的视图给予填充。
在这个问题上接受的答案不适合我。 使用UITextBorderStyleNone为UITextField设置填充
你可以像下面的代码创build一个UITextFiled类:
.H类
#import <UIKit/UIKit.h> @interface UITextField (Textpadding) -(CGRect)textRectForBounds:(CGRect)bounds; -(CGRect)editingRectForBounds:(CGRect)bounds; @end
.M类
#import "UITextField+Textpadding.h" @implementation UITextField (Textpadding) #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wobjc-protocol-method-implementation" -(CGRect)textRectForBounds:(CGRect)bounds { return CGRectMake(bounds.origin.x+20 , bounds.origin.y , bounds.size.width , bounds.size.height-2 ); } -(CGRect)editingRectForBounds:(CGRect)bounds { return [self textRectForBounds:bounds]; }
此类别将在运行时默认设置所有文本填充的填充。
如何创build类别
- 按cmd + n获得新build的类并selectObjective-c类。
- 然后select类别如下。
- 设置类名称。
- 设置文件名称。
这就是现在在这个类的代码作为我的答案。
另一个更简单快捷的解决scheme是,您可以为此创build一个imageview并为其添加图像。 然后将实际文本字段添加到imageview顶部,并根据需要进行移动,例如,如果您想要左填充,则可以将文本字段从imageview的x坐标移开一点。