Ios 如何将UIView固定到其superview的底部,但在键盘出现时使其移动?
我有一个UIView,其中包含UIView和UITableView。子UIView用于合成,它与任何messenger一样具有文本字段和发送按钮。如何将此子UIView固定/修复到Superview的底部,并将其保持在UITableView的顶部?但是,当文本字段处于焦点时,子UIView也需要高于键盘。您可以手动执行此操作。您可以注册获取键盘通知。 您可以使用以下功能Ios 如何将UIView固定到其superview的底部,但在键盘出现时使其移动?,ios,objective-c,uitableview,uiview,xcode6,Ios,Objective C,Uitableview,Uiview,Xcode6,我有一个UIView,其中包含UIView和UITableView。子UIView用于合成,它与任何messenger一样具有文本字段和发送按钮。如何将此子UIView固定/修复到Superview的底部,并将其保持在UITableView的顶部?但是,当文本字段处于焦点时,子UIView也需要高于键盘。您可以手动执行此操作。您可以注册获取键盘通知。 您可以使用以下功能 [[NSNotificationCenter defaultCenter] addObserver:self
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWasShown:)
name:UIKeyboardDidShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(keyboardWillBeHidden:)
name:UIKeyboardWillHideNotification object:nil];
关于这方面有一篇很好的文章,其中包含代码片段。对于AutoLayout和AutoResizingMasks struts and springs样式的布局,您的问题的答案是不同的 对于Xcode 6的默认设置AutoLayout,您要做的是创建一个约束,将视图固定到它的superview的底部,就像正常情况一样。然后在IB控件中选择该约束并将其拖动到视图控制器的头文件中,然后为该约束创建一个IBOutlet 然后,您可以为键盘编写通知处理程序来显示通知,并在该处理程序中更改约束属性的常量偏移量。最后一步是在UIView动画块中调用superview的LayoutIfNeed方法。这将导致更新约束时的布局更改设置动画 然后,如果键盘将隐藏通知,则执行相反的操作
如果你做的是struts和springs样式的布局,它类似但更简单。您只需为要移动的视图创建一个出口,然后让键盘显示通知处理程序,使用UIView动画设置对视图中心属性的更改的动画。在这些通知中更改tableView的content inset属性的顶部值是最简单的方法。