2015-04-28 77 views
2

我想通過在animationWithDuration塊中使用自動佈局來更改tableview框架。像那樣;使用自動佈局更改帶有動畫的tableview框架

[UIView animateWithDuration:0.3f animations:^{ 

      weekdayOffersVerticalConstraint.constant = 80; 
      [headerView layoutIfNeeded]; 
      [weekdayTableView layoutIfNeeded]; 

      self.isTableViewSmall = YES; 

     } completion:^(BOOL finished) { 


     }]; 

我的tableview的幀與此代碼塊改變,但是當我滾動下來,細胞左側來到右邊,我認爲這是有關與[weekdayTableView layoutIfNeeded]; layoutIfNeeded影響到所有的子視圖。我如何阻止影響到我的tableview的單元格?

對不起,我的英語不好,非常感謝您的回答和建議。

回答

2

呼叫layoutIfNeeded你開始動畫更新限制之前:

[headerView layoutIfNeeded]; 
[weekdayTableView layoutIfNeeded]; 
[UIView animateWithDuration:0.3f animations:^{ 

      weekdayOffersVerticalConstraint.constant = 80; 
      [headerView layoutIfNeeded]; 
      [weekdayTableView layoutIfNeeded]; 

      self.isTableViewSmall = YES; 

     } completion:^(BOOL finished) { 
      // 
     }]; 

你大概也不想,除非你有在故意覆蓋它的方法來設置動畫塊內部的BOOL財產動畫。

+0

它的工作,非常感謝你:)。 –