2014-11-06 59 views
1

我有一个提交按钮,我最初设置为隐藏。当我尝试调整它的框架时,我似乎无法让它移动? (我做这个假设的原因是因为我的键盘覆盖屏幕的下半部分,并且我尝试在键盘弹起时自动调整按钮)如果它隐藏,我的视图没有响应setFrame

所以我的hacky修复就是让这段代码在键盘监听器中运行:

if (self.submitButton.isHidden) { 
    self.submitButton.hidden = NO; 
    self.submitButton.frame = CGRectSetY(self.submitButton.frame, CGRectGetHeight(self.view.frame) - BUTTON_FULL_HEIGHT); 
    self.submitButton.hidden = YES; 
} else { 
    self.submitButton.frame = CGRectSetY(self.submitButton.frame, CGRectGetHeight(self.view.frame) - BUTTON_FULL_HEIGHT); 
} 

这是正确的吗?

+1

你可能想更新你的问题的标题,因为它不符合真正的问题。 – Imotep 2014-11-06 21:26:27

+0

您是否在使用自动布局的故事板中添加此按钮?如果是这样,你不应该设置任何框架,你应该调整约束。当需要重新绘制视图时,例如当您取消隐藏按钮时,该按钮将恢复到由其约束定义的框架。 – rdelmar 2014-11-07 00:33:21

+0

nope :(我不认为任何故事板正在使用 – 2014-11-11 03:48:23

回答

0

我发现我一直在使用的按钮没有的UIButton *和类是别的东西,它覆盖了一组隐藏的(不小心打碎了)

但因为我不知道如何正确地关闭这个问题,我只是想大拇指到另一个答案

1

您应该注册才能收到UIKeyboardWillShowNotification通知。这些通知将使用密钥UIKeyboardFrameEndUserInfoKey包含userInfo上的键盘框架。在这里,您可以移动您的submitButton以避开键盘。

+0

我试过你的方法,它也无法正常工作,实际上我正在听'UIKeyboardDidShowNotification',即使如此,它仍然不起作用。设置按钮在调整前暂时可见,它的工作原理我只是想知道是否有更好的方法 – 2014-11-06 22:12:18

+0

我从来没有遇到过一个按钮不动,当它设置它的'.frame'时它被隐藏,除非我特别重写' .frame'的行为如果你在记录集之前和之后记录帧,它是否被设置? – 2014-11-06 22:18:13

+0

我完全被困住了,它看起来像帧值确实在变化(到正确的位置)但是,从视觉上来说,每当我在稍后调用'.hidden = NO'时都看不到我的按钮(这是在正确的时间调用)。是因为我使用iphone 6? – 2014-11-06 22:48:02

相关问题