mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-08-01 16:06:59 +00:00
Update legacy animations
This commit is contained in:
parent
4211868217
commit
73c49d3ef2
@ -27,6 +27,22 @@
|
||||
|
||||
#define TGModernGalleryItemPadding 20.0f
|
||||
|
||||
static void adjustFrameRate(CAAnimation *animation) {
|
||||
if (@available(iOS 15.0, *)) {
|
||||
float maxFps = [UIScreen mainScreen].maximumFramesPerSecond;
|
||||
if (maxFps > 61.0f) {
|
||||
float preferredFps = maxFps;
|
||||
if ([animation isKindOfClass:[CABasicAnimation class]]) {
|
||||
CABasicAnimation *basicAnimation = (CABasicAnimation *)animation;
|
||||
if ([basicAnimation.keyPath isEqualToString:@"opacity"]) {
|
||||
preferredFps = 60.0f;
|
||||
}
|
||||
}
|
||||
animation.preferredFrameRateRange = CAFrameRateRangeMake(30.0, preferredFps, maxFps);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@interface TGModernGalleryController () <UIScrollViewDelegate, TGModernGalleryScrollViewDelegate, TGModernGalleryItemViewDelegate, TGKeyCommandResponder>
|
||||
{
|
||||
NSMutableDictionary *_reusableItemViewsByIdentifier;
|
||||
@ -904,6 +920,7 @@ static CGFloat transformRotation(CGAffineTransform transform)
|
||||
positionAnimation.removedOnCompletion = true;
|
||||
positionAnimation.fillMode = kCAFillModeForwards;
|
||||
positionAnimation.durationFactor = durationFactor;
|
||||
adjustFrameRate(positionAnimation);
|
||||
TGAnimationBlockDelegate *delegate = [[TGAnimationBlockDelegate alloc] initWithLayer:view.layer];
|
||||
delegate.completion = ^(BOOL finished)
|
||||
{
|
||||
@ -926,6 +943,7 @@ static CGFloat transformRotation(CGAffineTransform transform)
|
||||
scaleAnimation.removedOnCompletion = true;
|
||||
scaleAnimation.fillMode = kCAFillModeForwards;
|
||||
scaleAnimation.durationFactor = durationFactor;
|
||||
adjustFrameRate(scaleAnimation);
|
||||
[view.layer addAnimation:scaleAnimation forKey:@"transform.scale.x"];
|
||||
}
|
||||
{
|
||||
@ -937,6 +955,7 @@ static CGFloat transformRotation(CGAffineTransform transform)
|
||||
scaleAnimation.removedOnCompletion = true;
|
||||
scaleAnimation.fillMode = kCAFillModeForwards;
|
||||
scaleAnimation.durationFactor = durationFactor;
|
||||
adjustFrameRate(scaleAnimation);
|
||||
[view.layer addAnimation:scaleAnimation forKey:@"transform.scale.y"];
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user