話說(shuō)這個(gè)人啊, 真的是容易懶,今天你真不知道改寫什么了,突然想起來(lái)之前用過(guò)的一個(gè)篩選控件, 搬出來(lái)曬一波,萬(wàn)一有需要的大兄弟呢.
項(xiàng)目中的效果
原demo
這個(gè)是彈出的事件
- (IBAction)filterAction:(id)sender {
//側(cè)滑F(xiàn)ilterSlideViewController
_slidebarVC = [[FilterSlideDataViewController alloc] init];
_slidebarVC.view.frame = [UIScreen mainScreen].bounds;
[self.view addSubview:_slidebarVC.view];
[_slidebarVC showHideSidebar];
__weak typeof(self) weakSelf = self;
//通過(guò)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(@"自動(dòng)彈出");
self.view.hidden = NO;
[UIView animateWithDuration:duration animations:^{
[self setSidebarOriginX:kSBWidth - kSidebarWidth];
} completion:^(BOOL finished) {
_isMoving = NO;
[self sidebarDidShown];
}];
}else{
// NSLog(@"自動(dòng)縮回");
[UIView animateWithDuration:duration animations:^{
[self setSidebarOriginX:kSBWidth];
} completion:^(BOOL finished) {
_isMoving = NO;
self.view.hidden = YES;
[self slideToRight];
}];
}
}
將得到的數(shù)據(jù)回傳
//父類方法,當(dāng)slidebar隱藏時(shí)調(diào)用
- (void)slideToRight{
_backBlock([NSString stringWithFormat:@"%@%@",_choosedProvince,_choosedCity]);
}
比較好改
父子控制器.
看一下源碼就懂了
直接貼github地址了,按需索取.
https://github.com/wingsrao/SlideViewForFilter
最后 感謝大神.
p.s 略累,所以沒多寫.