2014-11-06 57 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

相關問題