我想从左侧填充填充到textfield。我已经在textfield中添加了一个背景图像,因为textfield中的文本总是从最左边开始。我尝试过以下解决方案,但这对于太多文本字段不起作用
UIView *fieldEmail = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 10, 10)];
self.txt_fname.leftViewMode = UITextFieldViewModeAlways;
self.txt_fname.leftView = fieldEmail;
请建议我一些简单的解决方案,其中我不必创建一个单独的视图来提供填充。
问题中接受的答案对我不起作用。 Set padding for UITextField with UITextBorderStyleNone
答案 0 :(得分:6)
您可以创建一个UITextFiled类别,如下面的代码:
.H class
#import <UIKit/UIKit.h>
@interface UITextField (Textpadding)
-(CGRect)textRectForBounds:(CGRect)bounds;
-(CGRect)editingRectForBounds:(CGRect)bounds;
@end
.M class
#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];
}
此类别将在运行时默认设置所有文本字段填充。
如何创建类别
它现在在这堂课中作为我的答案进行编码。
答案 1 :(得分:1)
另一种更简单,更快捷的解决方案是,您可以制作图像视图并为其添加文本字段图像。然后在imageview顶部添加真实文本字段,并根据需要移动它,例如,当你想要左边填充时,你可以将文本字段稍微远离imageview的x-cordinate。