#if USE_UIKIT_PUBLIC_HEADERS || !__has_include()
//
// UIFocusAnimationCoordinator.h
// UIKit
//
// Copyright © 2015-2018 Apple Inc. All rights reserved.
//
#import
NS_ASSUME_NONNULL_BEGIN
///!!!: 焦点动画上下文 <协议>
/*
概述
• 焦点动画相关的信息
• 由系统执行
*/
NS_CLASS_AVAILABLE_IOS(11_0) @protocol UIFocusAnimationContext
/// 焦点动画持续时间(以秒为单位)
@property (nonatomic, readonly) NSTimeInterval duration;
@end
#pragma mark - 焦点更新动画协调器 Class
#pragma mark -
/*
概述
• 由系统创建(自行实例化没用),并在焦点更新时发布到您的App,并且在更新完成后被丢弃
• 焦点更新时会生成两个主要动画:1>先前聚焦的视图动画化为未聚焦状态 2>下一个聚焦视图动画化为聚焦状态
• 动画协调器的目的是允许其他视图协调其动画以及先前或下一个聚焦视图的主要动画;添加到协调器的每个动画将在同一动画块中一起运行,具有相同的时序和选项
*/
NS_CLASS_AVAILABLE_IOS(9_0) @interface UIFocusAnimationCoordinator : NSObject
// 添加 协调动画
- (void)addCoordinatedAnimations:(nullable void (^)(void))animations completion:(nullable void (^)(void))completion;
// 添加 添加焦点时的自定义动画
- (void)addCoordinatedFocusingAnimations:(void (^ _Nullable)(id animationContext))animations completion:(void (^ _Nullable)(void))completion API_AVAILABLE(ios(11.0), tvos(11.0));
// 添加 移除焦点时的自定义动画
- (void)addCoordinatedUnfocusingAnimations:(void (^ _Nullable)(id animationContext))animations completion:(void (^ _Nullable)(void))completion API_AVAILABLE(ios(11.0), tvos(11.0));
@end
NS_ASSUME_NONNULL_END
#else
#import
#endif