SCPop 1.0.1

SCPop 1.0.1

Samueler维护。



SCPop 1.0.1

  • Samueler

SCPop

SCPop方便设置弹出视图。你只需专注于绘制你的UI。

特性

  • 支持使用CAAnimation显示或消失动画。
  • 支持在动画完成后通过块来观察显示或消失动画。
  • 支持contentView像UIScrollView一样bounce。
  • 支持设置在触摸内容区域之外的区域时消失弹出视图。
  • 适用于ARC和iOS >= 8。

安装

CocoaPods

通过CocoaPods安装SCSegment是最简单的方法。

pod 'SCPop'

传统方法

  • SCPop文件添加到你的项目中。

使用方法

创建 SCPop 的子类。实现 SCPopProtocol 需要的函数,然后使用自定义的弹出菜单。

// create pop without maskColor setting.
self.pop = [SCBasicPop showPopOnTargetView:UIApplication.sharedApplication.keyWindow];
// create pop with maskColor setting.
self.pop = [SCBasicPop showPopOnTargetView:UIApplication.sharedApplication.keyWindow maskColor:[UIColor colorWithWhite:0 alpha:0.3]];
// create pop without maskColor setting by block style.
__block typeof(self) weakSelf = self;
self.pop = [SCBasicPop showPopOnTargetView:UIApplication.sharedApplication.keyWindow showCompleted:^(BOOL finished) {
    if (finished) {
        NSLog(@"Show Animation Finished");
    }
} dismissCompleted:^(BOOL finished) {
    if (finished) {
        NSLog(@"Dismiss Animation Finished");;

        [weakSelf.pop removeFromSuperview];
        weakSelf.pop = nil;
    }
}];
// create pop with maskColor setting by block style.
__block typeof(self) weakSelf = self;
self.pop = [SCBasicPop showPopOnTargetView:UIApplication.sharedApplication.keyWindow maskColor:[UIColor colorWithWhite:0 alpha:0.3] showCompleted:^(BOOL finished) {
    if (finished) {
        NSLog(@"Show Animation Finished");
    }
} dismissCompleted:^(BOOL finished) {
    if (finished) {
        NSLog(@"Dismiss Animation Finished");;

        [weakSelf.pop removeFromSuperview];
        weakSelf.pop = nil;
    }
}];

设置弹跳

self.pop.bounces = YES;

设置触摸消失

self.pop.touchDismiss = YES;

您可以像这样观察由 block 完成的动画:

__block typeof(self) weakSelf = self;
self.pop.showCompleted = ^(BOOL finished) {
    if (finished) {
        NSLog(@"Show Animation Finished");
    }
};

self.pop.dismissCompleted = ^(BOOL finished) {
    if (finished) {
        NSLog(@"Dismiss Animation Finished");;

        [weakSelf.pop removeFromSuperview];
        weakSelf.pop = nil;
    }
};

注意

  1. 您必须实现 SCPopProtocol 所需要的函数。
  2. 'sc_popContentView' 函数的返回值不能为 nil。
  3. 'sc_popContentSize' 函数的返回值不能为 CGSizeZero。

许可证

SCPop 是在 MIT 许可证条款下进行授权的。