2013-06-24 30 views
-1

項目:http://cl.ly/1T2K0V3w1P21我定位自動佈局在屏幕上一個UILabel,但是當我隱藏導航欄,它會導致標籤爲「抽搐」的第二

,最好通過項目看出,這是一個小下載剝離到只是視圖控制器。

基本上,我的UILabel停留在完美的地方與汽車的佈局,但是當我隱藏導航欄(你可以在任何地方通過點擊屏幕上做這個項目),它會導致它抽搐。無論導航欄上發生了什麼,我如何使它保持在完全相同的位置?

它似乎正呈現動畫(我想)會導致自動版式感到困惑。

這裏的標籤上的制約因素是什麼樣子:

enter image description here

任何人都可以提供一些建議,以什麼我做錯了嗎?

+0

我在做法有點困惑,至於標籤知道它是在同一個地點,並認爲作爲一個整體向上移動,你可以添加,每次減去用於導航欄的空間,但如果你想繼續這個項目,那麼你可能要考慮另一種方式就像在頂部使用按鈕或工具欄並保持視圖的位置進制。實驗自動佈局關,以及它實際上是一個負擔,你的UILabel看起來平滑了很多用它關閉和一些其他的變化以及較低的文字並沒有這樣做奇怪的「啪」進出。 – rezand

+1

我想要使用自動佈局,它儘管它的問題似乎總體有利。我不知道你在說什麼第一段/句子。 –

回答

1

相反底部空間限制的,你可以嘗試從標籤(這是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; 
} 
相關問題