在您的 Xib 中添加一个 UIScrollView 并建立 IBOutlet 连接,以添加您动态创建的所有标签。我对你的代码做了一些修改。它工作正常。
-(void)setAnswerField
{
int len = 10;
int commonSpace = 20;
for (int i=0;i<=len;i++)
{
if(i != 0)
commonSpace += 40;
textF=[[UITextField alloc] initWithFrame:CGRectMake(((i * 60))+commonSpace,180,60,35)];
[textF setTag:i];
[textF setDelegate:self];
[textF setReturnKeyType:UIReturnKeyDone];
[textF setBackgroundColor:[UIColor grayColor]];
[textF addTarget:self action:@selector(textFieldFinished:) forControlEvents:UIControlEventEditingDidEndOnExit];
textF.clearButtonMode=UITextFieldViewModeWhileEditing;
[textF addTarget:self action:@selector(keyDown:)forControlEvents:UIControlEventEditingDidEndOnExit];
[_textfieldsScrollView addSubview:textF];
}
_textfieldsScrollView.contentSize=CGSizeMake(1000, 500);
}
在单击文本字段 textViewDidBeginEditing 方法 fire 时,只需像这样更改内容偏移值。
- (void)textViewDidBeginEditing:(UITextView *)textView
{
[_textfieldsScrollView setContentSize:CGSizeMake(320, 400)];
[_textfieldsScrollView setContentOffset:CGPointMake(0, 100) animated:YES];
}
之后像这样恢复到原来的位置。
- (void)textViewDidEndEditing:(UITextView *)textView
{
//Back to normal state.
[_textfieldsScrollView setContentOffset:CGPointMake(0, 0) animated:YES];
}