我在做一個像Path那種向右滑動,顯示出一個導航菜單。我用過兩種方式,一種是 [UIView beginAnimations:nil context:@"view_animation"];
[UIView setAnimationDuration:0.3];
self.view.left = 200.0f; // setLeft 是我自己定義的方法
[UIView commitAnimations];另一種: self.view.layer.anchorPoint = CGPointZero; self.view.layer.frame.left = 200.0f; CAKeyframeAnimation *pathAnimation = [CAKeyframeAnimation animationWithKeyPath:@"position"];
pathAnimation.duration = 0.3f; UIBezierPath *path = [UIBezierPath bezierPath];
[path moveToPoint:CGPointMake(0.0f, 0.0f)];
[path addLineToPoint:CGPointMake(200.0f, 0.0f)];
pathAnimation.path = path.CGPath;
pathAnimation.calculationMode = kCAAnimationLinear;
[self.view.layer addAnimation:pathAnimation forKey:@"view_animation"];而且最近,我更新了網易新聞的客戶端,網易新聞的客戶端這個操作非常流暢,有可能是怎么實現的呢?
2 回答

慕妹3242003
TA貢獻1824條經驗 獲得超6個贊
卡有兩種:CPU和GPU的。CPU引起的是不規則的卡頓,GPU引起的是掉幀。
如果是GPU問題,檢查view上是不是直接在layer上加了圓角或陰影

慕田峪9158850
TA貢獻1794條經驗 獲得超7個贊
我考慮,你的這個卡的問題不是動畫方式造成的,而是添加動畫的內容太多了。
你的self.view 上要添加動畫,那么self.view的所有subview也都要跟著動,所以就非常的重。
你可以考慮嘗試一下,監聽到滑動事件,生成一張self.view的截圖,把這張截圖貼在上邊,讓截圖動,這樣效率會好的很多。
- 2 回答
- 0 關注
- 144 瀏覽
添加回答
舉報
0/150
提交
取消