2016-03-18 67 views
1

enter image description here需要IOS

CAKeyframeAnimation * anim = [ CAKeyframeAnimation animationWithKeyPath:@"transform"] ; 

anim.values = @[ [ NSValue valueWithCATransform3D:CATransform3DMakeTranslation(-10.0f, 0.0f, 0.0f) ], [ NSValue valueWithCATransform3D:CATransform3DMakeTranslation(10.0f, 0.0f, 0.0f) ] ] ; 
anim.autoreverses = YES; 
anim.repeatCount = 2.0f; 
anim.duration = 0.1f; 

[cell.layer addAnimation:anim forKey:nil] ; 

我寫上面的代碼搖上選擇一個集合觀察室搖上didselectitematindexpath一個collectionviewcell。當我在查看屏幕後第一次做到這一點時,收集視圖單元格的框架會出現不匹配。雖然當我再次訪問視圖時,它可以正常工作。 請幫我解釋爲什麼在添加動畫之後第一次創建問題,如果我刪除動畫,那麼第一次沒有不匹配,但我需要動畫。

雖然當我再次訪問這個視圖和做部分沒有框架不匹配。只有第一次選擇第一次訪問時出現問題的觀點。

回答

0

您可以使用下面的代碼進行搖動視圖。

#pragma mark 
#pragma mark - ANIMATION SHAKE 

- (void)shake:(UIView *)shakeView { 

    CAKeyframeAnimation *animation = [CAKeyframeAnimation animationWithKeyPath:@"transform.translation.x"]; 
    animation.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionLinear]; 
    animation.duration = 0.6; 
    animation.values = @[ @(-10), @(10), @(-10), @(10), @(-5), @(5), @(-2.5), @(5), @(0) ]; 
    [shakeView.layer addAnimation:animation forKey:@"shake"]; 

} 
+0

你提供的代碼也做了同樣的事情。我寫的代碼是按照需要工作,但它有一個問題。我正在研究collectionView,我必須在選擇時搖動收集的顆粒細胞。問題是,當我在任何單元格上選擇任何單元格時,所有框架都會首次出現不匹配問題,而當我訪問時再次查看並選擇任何單元格時,它都能正常工作。 – Som

+0

@som你可以把這個東西的屏幕截圖 –

2

我得到了這個問題的解決方案,爲什麼收集視圖單元格框架不匹配。這是由於ToastView造成的。我正在通過吐司顯示超出的圖像信息。現在我使用警報視圖,它工作正常....