mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-08-02 00:17:02 +00:00
Update legacy animations
This commit is contained in:
parent
4211868217
commit
73c49d3ef2
@ -27,6 +27,22 @@
|
|||||||
|
|
||||||
#define TGModernGalleryItemPadding 20.0f
|
#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>
|
@interface TGModernGalleryController () <UIScrollViewDelegate, TGModernGalleryScrollViewDelegate, TGModernGalleryItemViewDelegate, TGKeyCommandResponder>
|
||||||
{
|
{
|
||||||
NSMutableDictionary *_reusableItemViewsByIdentifier;
|
NSMutableDictionary *_reusableItemViewsByIdentifier;
|
||||||
@ -904,6 +920,7 @@ static CGFloat transformRotation(CGAffineTransform transform)
|
|||||||
positionAnimation.removedOnCompletion = true;
|
positionAnimation.removedOnCompletion = true;
|
||||||
positionAnimation.fillMode = kCAFillModeForwards;
|
positionAnimation.fillMode = kCAFillModeForwards;
|
||||||
positionAnimation.durationFactor = durationFactor;
|
positionAnimation.durationFactor = durationFactor;
|
||||||
|
adjustFrameRate(positionAnimation);
|
||||||
TGAnimationBlockDelegate *delegate = [[TGAnimationBlockDelegate alloc] initWithLayer:view.layer];
|
TGAnimationBlockDelegate *delegate = [[TGAnimationBlockDelegate alloc] initWithLayer:view.layer];
|
||||||
delegate.completion = ^(BOOL finished)
|
delegate.completion = ^(BOOL finished)
|
||||||
{
|
{
|
||||||
@ -926,6 +943,7 @@ static CGFloat transformRotation(CGAffineTransform transform)
|
|||||||
scaleAnimation.removedOnCompletion = true;
|
scaleAnimation.removedOnCompletion = true;
|
||||||
scaleAnimation.fillMode = kCAFillModeForwards;
|
scaleAnimation.fillMode = kCAFillModeForwards;
|
||||||
scaleAnimation.durationFactor = durationFactor;
|
scaleAnimation.durationFactor = durationFactor;
|
||||||
|
adjustFrameRate(scaleAnimation);
|
||||||
[view.layer addAnimation:scaleAnimation forKey:@"transform.scale.x"];
|
[view.layer addAnimation:scaleAnimation forKey:@"transform.scale.x"];
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
@ -937,6 +955,7 @@ static CGFloat transformRotation(CGAffineTransform transform)
|
|||||||
scaleAnimation.removedOnCompletion = true;
|
scaleAnimation.removedOnCompletion = true;
|
||||||
scaleAnimation.fillMode = kCAFillModeForwards;
|
scaleAnimation.fillMode = kCAFillModeForwards;
|
||||||
scaleAnimation.durationFactor = durationFactor;
|
scaleAnimation.durationFactor = durationFactor;
|
||||||
|
adjustFrameRate(scaleAnimation);
|
||||||
[view.layer addAnimation:scaleAnimation forKey:@"transform.scale.y"];
|
[view.layer addAnimation:scaleAnimation forKey:@"transform.scale.y"];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user