2013-10-17 79 views
0

我有一個非常奇怪的錯誤,當我開始測試iOS7時,有一些視圖。看起來,如果任何可以動畫的屬性都在子視圖中更改其值,而其父對象正在通過動畫,則更改也會變爲動畫。我有以下方法:IOS7子視圖如果他們的父視圖正在動畫

- (void)performAnimation{ 
    [UIView animateWithDuration:0.42 
         delay:0 
         options:UIViewAnimationOptionAllowUserInteraction|UIViewAnimationOptionBeginFromCurrentState 
        animations:^{ 
        self.myView.contentInset = contentInset; 
       } 
       completion:NULL]; 
} 

在此期間,我的layoutsubviews功能在該視圖被調用,它更新了一些子視圖的位置。

-(void)layoutSubviews{ 
     self.someSubview.frame = CGRectMake(10,20,30,40); 
} 

在iOS5中/ 6的變化發生瞬間,但在iOS7它被動畫,所以你可以看到我的子視圖慢慢地從它的初始位置移動到其最終位置。有什麼想法嗎?

+0

有點不可思議的是你動畫'contentInset'。這不是動畫,因爲:https://developer.apple.com/library/ios/documentation/uikit/reference/uiview_class/UIView/UIView.html –

+0

你使用'autolayout'嗎? – Alladinian

回答

1

我終於弄明白了。在IOS7他們已經推出了新的功能

+ (void)performWithoutAnimation:

我只是裹着我的代碼在layoutSubviews在它和不必要的動畫消失。

+0

真棒的東西,我有一個類似的問題與iOS 7中的新動畫抖動,當一堆的意見正在被移動。必須做同樣的事情,並採取一些變化,並從他們刪除動畫。 – talkol

相關問題