相反底部空間限制的,你可以嘗試從標籤(這是22中恆)定義了頂部空間限制到上海華盈,它作爲一個IBOutlet連接到您的視圖屬性,動畫它當導航酒吧被隱藏或顯示。
例如,我宣佈頂部空間屬性作爲topSpaceConstraint:
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *topSpaceConstraint;
然後hideControls方法裏面,我可以動畫約束:
- (void)hideControls:(BOOL)visible {
if (visible) {
[UIView animateWithDuration:UINavigationControllerHideShowBarDuration animations:^{
self.topSpaceConstraint.constant = 66; //44 is the navigation bar height, you need to find a way not to hardcode this
[self.view layoutIfNeeded];
}];
}
else {
[UIView animateWithDuration:UINavigationControllerHideShowBarDuration animations:^{
self.topSpaceConstraint.constant = 22;
[self.view layoutIfNeeded];
}];
}
[self.navigationController setNavigationBarHidden:visible animated:YES];
self.backFiftyWordsButton.hidden = visible;
self.forwardFiftyWordsButton.hidden = visible;
self.WPMLabel.hidden = visible;
self.timeRemainingLabel.hidden = visible;
}
我在做法有點困惑,至於標籤知道它是在同一個地點,並認爲作爲一個整體向上移動,你可以添加,每次減去用於導航欄的空間,但如果你想繼續這個項目,那麼你可能要考慮另一種方式就像在頂部使用按鈕或工具欄並保持視圖的位置進制。實驗自動佈局關,以及它實際上是一個負擔,你的UILabel看起來平滑了很多用它關閉和一些其他的變化以及較低的文字並沒有這樣做奇怪的「啪」進出。 – rezand
我想要使用自動佈局,它儘管它的問題似乎總體有利。我不知道你在說什麼第一段/句子。 –