滚动到滚动型/滚动视图停止滚动特定的文本框,当键盘在屏幕上
问题描述:
我被困在了这里,滚动到滚动型/滚动视图停止滚动特定的文本框,当键盘在屏幕上
我有一个自定义的滚动视图当前滚动视图有一个附加字段按钮,它可以让用户视图向滚动视图添加新的文本字段。当用户点击一个特定的文本框的键盘出现在和隐藏的文本框,来克服这个我也跟着UICatalog例子,但它
移动整个滚动视图,以防止这种情况我也跟着UICatalog例子,这样做,
-(void)textFieldDidBeginEditing:(UITextField *)sender
{
if (sender.frame.origin.y>109) {
moveScrollViewUpBy=(sender.frame.origin.y-109+10);
[self viewMovedUp:YES];
}
}
-(void)viewMovedUp:(BOOL)movedUp
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.3];
CGRect rect = formScrollView.frame;
if (movedUp)
{
if(rect.origin.y == 0.0f){
rect.origin.y -= kOFFSET_FOR_KEYBOARD;
rect.size.height += kOFFSET_FOR_KEYBOARD;
}
}
else
{
if(rect.origin.y != 0.0f){
rect.origin.y += kOFFSET_FOR_KEYBOARD;
rect.size.height -= kOFFSET_FOR_KEYBOARD;
}
}
self.formScrollView = rect;
[UIView commitAnimations];
}
这里
#define kOFFSET_FOR_KEYBOARD 160.0
但这种转移滚动视图时,
我想,当我在滚动视图轻按一个文本框下方向下...的滚动视图滚动并出现一个文本框....
是有可能这样做....否则建议我一些其他的解决办法
我多了一个查询srollview只停留在键盘滚动留在屏幕上。有没有什么办法可以解决这个问题
答
你可能只想设置scrollView的contentOffset属性,而不是调整其边界。
答
落实UITextViewDelegate并执行以下操作:
- (void)textViewDidBeginEditing:(UITextView *)textView {
keyboardShowing = YES; //helper ivar
[self sizeToOrientation];
[self.scrollView scrollRectToVisible:textView.frame animated:YES];
}
- (void)textFieldDidEndEditing:(UITextField *)textField {
keyboardShowing = NO;
[self sizeToOrientation];
}
Helper方法:
//fit to the appropriate view sizes
- (void)sizeToOrientation {
CGSize size;
if(keyboardShowing)
size = CGSizeMake(320, 190); //make room for keyboard
else
size = CGSizeMake(320, 420); //full height with tabbar on bottom
self.scrollView.frame = CGRectMake(0, 0, size.width, size.height);
}
这很适合我。
thnx支持让我试试看看 – 2010-01-01 07:07:53