andreamazz/BubbleTransition 的 Objective-C 版本。它是一种自定义模态过渡,在扩展和缩小的 气泡 内显示和隐藏控制器。
通过 Cocoapods 安装
pod 'BubbleTransition-objc', '~> 0.1'
让您的 viewcontroller 遵从 UIViewControllerTransitioningDelegate
。设置 transitionMode
、startingPoint
、bubbleColor
和 duration
。
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
UIViewController *controller = segue.destinationViewController;
controller.transitioningDelegate = self;
controller.modalPresentationStyle = UIModalPresentationCustom;
}
#pragma mark - UIViewControllerTransitioningDelegate
-(id<UIViewControllerAnimatedTransitioning>)animationControllerForPresentedController:(UIViewController *)presented presentingController:(UIViewController *)presenting sourceController:(UIViewController *)source
{
self.transition.transitionMode = YPBubbleTransitionModePresent;
self.transition.startPoint = someButton.center;
self.transition.bubbleColor = someButton.backgroundColor;
return self.transition;
}
-(id<UIViewControllerAnimatedTransitioning>)animationControllerForDismissedController:(UIViewController *)dismissed
{
self.transition.transitionMode = YPBubbleTransitionModeDismiss;
self.transition.startPoint = someButton.center;
self.transition.bubbleColor = someButton.backgroundColor;
return self.transition;
}
CGPoint startPoint = CGPointZero;
气泡的起源点。
CGFloat duration = 0.5;
过渡持续时间。
YPBubbleTransitionMode transitionMode = YPBubbleTransitionModePresent;
过渡方向。可以是 YPBubbleTransitionModePresent
或 YPBubbleTransitionModeDismiss
。
UIColor *bubbleColor = [UIColor whiteColor];
气泡的颜色。确保它与目标控制器的背景颜色匹配。
查看示例项目以获取完整实现。
epingwang
BubbleTransition 可在 MIT 许可下使用。有关更多信息,请参阅 LICENSE 文件。