如何给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坐标移开一点。