向上移动视图以适应键盘

Dri*_*uak 4 iphone xamarin.ios

我有一个包含多个文本字段的视图,我想要做同样的效果,当你单击文本字段时,联系人应用程序会在键盘出现时隐藏它.当我关闭键盘时,我打算将视图正确地向下移动.

我怀疑我是通过更改Frame值来做到这一点的,但我需要对它进行动画处理,以免对用户造成伤害.

建议吗?例子?

Luk*_*uke 6

在UIScrollView中包装您的视图确实是要走的路.以及对textFieldDidEndEditing委托,您可以改为订阅UIKeyboardDidHideNotificationUIKeyboardDidShowNotification,当你收到通知,该键盘时隐藏/显示然后适当地滚动视图.如果需要,我可以发布键盘通知的代码示例:)

编辑图 我仍然会发布代码 - 有人可能会发现它有用:

您需要为通知声明侦听器:

NSObject hideObj = NSNotificationCenter.DefaultCenter.AddObserver(UIKeyboard.DidHideNotification, HandleKeyboardDidHide);
NSObject showObj = NSNotificationCenter.DefaultCenter.AddObserver(UIKeyboard.DidShowNotification, HandleKeyboardDidShow);   
Run Code Online (Sandbox Code Playgroud)

然后你的Action方法看起来像:

void HandleKeyboardDidShow(NSNotification notification)
{
     scrollView.ScrollRectToVisible(textfield.Frame, true);
}

void HandleKeyboardDidHide(NSNotification notification)
{
     // scroll back to normal
}
Run Code Online (Sandbox Code Playgroud)

编辑2

因此,如果您希望在视图被销毁时删除Observers,首先需要确保NSObject在添加观察者时分配s,然后使用以下代码删除它们:

NSNotificationCenter.DefaultCenter.RemoveObserver(showObj);
NSNotificationCenter.DefaultCenter.RemoveObserver(hideObj);
Run Code Online (Sandbox Code Playgroud)

希望有所帮助.