话说这个人啊, 真的是容易懒,今天你真不知道改写什么了,突然想起来之前用过的一个筛选控件, 搬出来晒一波,万一有需要的大兄弟呢.
项目中的效果
20CF1422-4E33-45BD-AE77-AD50E3C45CEE.png
原demo
filterS.gif
这个是弹出的事件
- (IBAction)filterAction:(id)sender {
//侧滑FilterSlideViewController
_slidebarVC = [[FilterSlideDataViewController alloc] init];
_slidebarVC.view.frame = [UIScreen mainScreen].bounds;
[self.view addSubview:_slidebarVC.view];
[_slidebarVC showHideSidebar];
__weak typeof(self) weakSelf = self;
//通过block 传出去
_slidebarVC.backBlock = ^(id backData){
if ([NSString stringWithFormat:@"%@",backData].length) {
weakSelf.label.text = backData;
}
};
在FilterSlideDataViewController
中, _backBlock
回传需要的值.
- (void)showHideSidebar{
if (self.contentView.frame.origin.x == kSBWidth) {
startContentOriginX = self.contentView.frame.origin.x;
}
[self autoShowHideSidebar];
}
#pragma mark Private
- (void)autoShowHideSidebar
{
if (!self.isSidebarShown){
// NSLog(@"自动弹出");
self.view.hidden = NO;
[UIView animateWithDuration:duration animations:^{
[self setSidebarOriginX:kSBWidth - kSidebarWidth];
} completion:^(BOOL finished) {
_isMoving = NO;
[self sidebarDidShown];
}];
}else{
// NSLog(@"自动缩回");
[UIView animateWithDuration:duration animations:^{
[self setSidebarOriginX:kSBWidth];
} completion:^(BOOL finished) {
_isMoving = NO;
self.view.hidden = YES;
[self slideToRight];
}];
}
}
将得到的数据回传
//父类方法,当slidebar隐藏时调用
- (void)slideToRight{
_backBlock([NSString stringWithFormat:@"%@%@",_choosedProvince,_choosedCity]);
}
比较好改
父子控制器.
看一下源码就懂了
直接贴github地址了,按需索取.
https://github.com/wingsrao/SlideViewForFilter
最后 感谢大神.
p.s 略累,所以没多写.
网友评论