我试图在UITextField中移动文本,使其垂直对齐。我在网上搜索过,所有内容都指向编辑这些方法:
- (CGRect) textRectForBounds:(CGRect)bounds和
- (CGRect) editingRectForBounds:(CGRect)bounds虽然我这样编辑过它们:
- (CGRect) textRectForBounds:(CGRect)bounds {
NSLog(@"hi");
return CGRectInset(bounds, 10, 10);
}虽然它没有到达nslog。
我也尝试过在textfield上调用该方法,但没有成功。
我就是这样初始化文本视图并设置它们的:
-(void) viewWillAppear:(BOOL)animated {
textfield1 = [[UITextField alloc] init];
textfield2 = [[UITextField alloc] init];
textfield3 = [[UITextField alloc] init];
textfield4 = [[UITextField alloc] init];
for (UITextField *text in [NSArray arrayWithObjects:textfield1, textfield2, textfield3, textfield4, nil]) {
text.delegate = self;
text.placeholder = [placeholders objectAtIndex:i];
text.frame = CGRectMake(10, offsetTop, container.frame.size.width - 20, 40);
[text textRectForBounds:text.bounds];
[text editingRectForBounds:text.bounds];
text.borderStyle = UITextBorderStyleRoundedRect;
offsetTop += 50;
i++;
[container addSubview:text];
}
}发布于 2014-03-08 18:48:13
步骤1-首先创建一个自定义文本字段MyTextField
@interface MyTextField : UITextField步骤2-根据需要重写MyTextField方法
///place holder position
- (CGRect)placeholderRectForBounds:(CGRect)bounds
{
return CGRectInset(bounds, 8, 8);
}
// text position
- (CGRect)textRectForBounds:(CGRect)bounds {
return CGRectInset(bounds, 8,4);
}
// text position while editing
- (CGRect)editingRectForBounds:(CGRect)bounds {
return CGRectInset(bounds, 8, 4);
}步骤3-在控制器类中导入MyTextField &使MyTextField的对象
#import "MyTextField.h"
-(void) viewWillAppear:(BOOL)animated {
MyTextField* textfield1 = [[MyTextField alloc] init];
// and so on
}现在,每个文本字段都将像预期的那样工作。
https://stackoverflow.com/questions/22272800
复制相似问题