如何在iPhone中打开键盘时调整视图位置?

时间:2009-10-20 10:22:02

标签: iphone iphone-softkeyboard

在长度超过屏幕区域50%的表单中,输入将显示在键盘下方。 我想调整视图,以便在键盘显示时保持所选输入始终可见,并在键盘消失时重置其位置。

有什么想法吗? 感谢。

4 个答案:

答案 0 :(得分:3)

“iPhone应用程序编程指南”中的Managing the Keyboard部分讨论了如何接收键盘显示/不显示的通知,以及如何保持内容可见(包括示例代码)。

答案 1 :(得分:2)

如果您在UIScrollView,则可以使用-scrollRectToVisible:animated: method移至视图的特定部分。

如果您使用UITableView,则可以使用-scrollToRowAtIndexPath:atScrollPosition:animated: method滚动到特定行,或- scrollToNearestSelectedRowAtScrollPosition:animated:

答案 2 :(得分:0)

答案 3 :(得分:0)

试用此代码:

#define kTextFieldMovementDistance      150.0 //You can set this according to your need
#define kMinimumMovementDuration        0.3f

- (void) slidingViewUpward: (BOOL) isSlidingUp
{
    CGFloat movementDistance = kTextFieldMovementDistance; 

    const float movementDuration = kMinimumMovementDuration;

    int movement = (isSlidingUp ? -movementDistance : movementDistance);

    [UIView beginAnimations: @"animation" context: nil];
    [UIView setAnimationBeginsFromCurrentState: YES];
    [UIView setAnimationDuration: movementDuration];
    self.view.frame = CGRectOffset(self.view.frame, 0, movement);

    [UIView commitAnimations];
}

当您想要向上滑动视图方向时,或当键盘成为第一个响应者时,将bool值传递为YES,否则NO