blob: 9c7cb1783fc07143419a4fc511bab574337b4c06 [file] [log] [blame]
/*
Copyright 2016-present the Material Components for iOS authors. All Rights Reserved.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
#import <Foundation/Foundation.h>
@protocol MDCOverlayAnimationObserverDelegate;
/**
Utility class which will call its delegate at the end of the current runloop cycle.
Called before CoreAnimation has had a chance to commit any pending implicit @c CATransactions.
*/
@interface MDCOverlayAnimationObserver : NSObject
/**
Called to tell the observer that it should call the @c delegate at the end of the next runloop.
Without calling this method, the observer will not call the delegate.
*/
- (void)messageDelegateOnNextRunloop;
/**
The delegate to notify when the end of the runloop has occurred.
*/
@property(nonatomic, weak) id<MDCOverlayAnimationObserverDelegate> delegate;
@end
/**
Delegate protocol for @c MDCOverlayAnimationObserver.
*/
@protocol MDCOverlayAnimationObserverDelegate <NSObject>
/**
Called at the end of the current runloop, before CoreAnimation commits any implicit transactions.
*/
- (void)animationObserverDidEndRunloop:(MDCOverlayAnimationObserver *)observer;
@end