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;
}
};
注意
- 您必须实现 SCPopProtocol 所需要的函数。
- 'sc_popContentView' 函数的返回值不能为 nil。
- 'sc_popContentSize' 函数的返回值不能为 CGSizeZero。
许可证
SCPop 是在 MIT 许可证条款下进行授权的。