精华内容
下载资源
问答
  • 一个iOS筛选菜单

    2021-04-06 18:58:47
    作者xzx951753,源码ZXFilterView,一个筛选菜单,指定一个父view参数,ZXFilterView会根据这个父view的大小一样,弹出在superView顶层。1. ZXFilterView可以支持多个group,每个group支持多个button,按钮长度可根据...
  • iOS 筛选菜单

    千次阅读 2018-12-28 04:58:47
    自由定制电商筛选菜单 超级简单好用的电商筛选菜单 2018.12.28更新 增加单独侧滑菜单筛选 2018.12.26更新 修复无法响应事件bug 2018.12.25更新 dropMenu的title自适应宽度 增加适量注释,模型封装 外部模型...

    GHDropMenuDemo

    自由定制电商筛选菜单

    超级简单好用的电商筛选菜单

    2018.12.28更新

    • 增加单独侧滑菜单筛选

    2018.12.26更新

    • 修复无法响应事件bug

    2018.12.25更新

    • dropMenu的title自适应宽度
    • 增加适量注释,模型封装
    • 外部模型控制内部用户点击筛选是否记录
    • 适配x,xs,xr,xsmax
    • 去掉刚开始创建的动画


    • 自定义筛选标题,自定义筛选内容,自定义筛选标签,自定义筛选头部内容
    • 数组越界处理
    • 价格输入筛选
    • 实现tag标签,单选,多选,取消选中效果
    • 保留上次选中选项
    • 动画展开,移除
    • 可以重新传入模型,重新刷新数据源
    • 选中内容通过代理的方式回调
    • 对原有项目无污染,直接拖进项目即可使用

    使用方法

    • GHDropMenu 拖入项目中
    • 导入
    #import "GHDropMenu.h"
    复制代码
        /** 配置筛选菜单模型 */
        GHDropMenuModel *configuration = [[GHDropMenuModel alloc]init];
        /** 配置筛选菜单是否记录用户选中 默认NO */
        configuration.recordSeleted = NO;
        /** 设置数据源 */
        configuration.titles = [configuration creaDropMenuData];
        
        /** 创建dropMenu 配置模型 &&frame */
        GHDropMenu *dropMenu = [[GHDropMenu alloc]creatDropMenuWithConfiguration:configuration frame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.width, 44)];
        dropMenu.delegate = self;
        
        [self.view addSubview:dropMenu];
        
    复制代码
    • 需要构造json数据
    详见demo
    复制代码

    demo


    转载于:https://juejin.im/post/5c25acd6f265da616e4c80ab

    展开全文
  • iOS精选源码 APP启动视频 ...iOS 筛选菜单 分段选择器 仿微信导航栏的实现,让你的导航栏过渡平滑,赏心悦目。 iOS仿微信的悬浮窗,自定义转场动画,使用超级简单 <br/> iOS优质博客 201...
        

    iOS精选源码

    APP启动视频

    自定义按钮,图片可调整图文间距SPButton

    一款定制性极高的轮播图,可自定义轮播图Item的样式(或只...

    iOS 筛选菜单

    分段选择器

    仿微信导航栏的实现,让你的导航栏过渡平滑,赏心悦目。

    iOS仿微信的悬浮窗,自定义转场动画,使用超级简单


    <br/>

    iOS优质博客

    2018 我的技术进阶之路

    窗外雨夹着雪,2018 的冬天似乎格外寒冷。国内经济下行,资金链断裂、人员优化、冻结 HC 等消息不绝于耳,2018 的冬天被一层阴霾笼罩,互联网从业人员一度人心惶惶。大潮退去,才知道谁在裸泳,这是说企业,也是说个人。毫无疑问的是,互联网从业人员的竞争更加激烈了,作为一名普通的开发者,在没有更好的机遇时,首先应该想的是... 阅读原文

    iOS开发之UIRefreshControl使用踩坑

    问题描述接上一个话题,实现了TabBar的点击刷新以后,开始继续写完成功能,刷新UITableView,于是考虑到iOS 10以后,UIScrollView已经有UIRefreshControl的属性了,干脆用自带的写。于是就有了如下的代码:添加UIRefreshControl到UITableView上去UIRefre... 阅读原文

    iOS开发-WKWebView与JS的交互

    iOS8以后,Apple公司退出了WKWebView,对比之前的UIWebView不论是处理速度还是内存性能,都有了大幅度的提升!那么下面我就分享一下WKWebView与JS的交互.首先使用WKWebView.你需要导入WebKit #import然后初始化一个WKWebView,设置代理,并且执行代理的方法.在网页加... 阅读原文

    iOS内存管理的那些事儿-原理及实现

    为什么要写这篇文章最近在做内存优化相关的问题,趁着这个机会把内存相关知识捋一捋。虽然现在语言设计的趋势之一就是让程序员不在关心内存管理这件事。但是作为一名程序开发,如果因为语言这个特性,而忽略这方面的知识的话,那是非常不可取的,不懂这方面知识,遇到问题会让我们知其然还不知其所以然。因为内存设计的知识比较多,因此我把他做... 阅读原文
    <br/>

    <br/>
    欢迎扫码关注微信公众号

    展开全文
  • IOS筛选框的实现(仿糯米团)

    千次阅读 2015-01-21 15:01:59
    实现效果: 低保真界面原型 代码讲解(创建部分) 1创建界面:初始化各种组件,搭建界面 #pragma mark- 初始化 :原点+高 - (instancetype)initWithOrigin:(CGPoint)origin andHeight:(CGFloat)height ...

    实现效果:

    低保真界面原型


    代码讲解(创建部分)

    1创建界面:初始化各种组件,搭建界面

    #pragma mark- 初始化 :原点+高
    - (instancetype)initWithOrigin:(CGPoint)origin andHeight:(CGFloat)height andDataArray:(NSMutableArray *)data;
    {
        // 位置信息
        _origin = origin;
        _show=NO;
        _height = height;
        
        // 填充数据
        dataArray=data;
        numOfMenu=[dataArray count];
        currentSelectedMenudIndex=-1;
        
            // 绘制栏目头的轮廓
            self=[self initWithFrame:CGRectMake(origin.x, origin.y, ScreenSize.size.width,height)];
            // 每个button的宽度
            CGFloat buttonInertval=self.frame.size.width/numOfMenu;
            // 根据列数创建button
            [self createButton:buttonInertval andHeight:height];
            // 创建tableview
            [self createTableView:origin];
            // 创建背景+添加弹回事件
            [self createBackgroud:origin];
            // 给menu添加底边
            [self createShadow];
        
        self.backgroundColor=[UIColor whiteColor];
        return self;
    }

    绘制button

    根据列数在menu上绘制button,需要给给他们都打上tag,这样可以通过tag来获取你创建的button

    1  注意:tag 赋值要正整数(用了两个小时调错,发现是给tag赋值为0 ⊙﹏⊙b汗)
    2  通过tag获取button方法为(注意类型转换)
    - (UIView *)viewWithTag:(NSInteger)tag; 
    3 控制文字和图片的排版:使用edgeInsets属性控制button内图文布局  后面函数的参数距离(上,左,下,右)的距离
            // 图片插在了这里 edge :边缘 优势
            // 设置button中文字和图片
            tmpButton.titleEdgeInsets=UIEdgeInsetsMake(0,0,0,0);
            tmpButton.imageEdgeInsets = UIEdgeInsetsMake(0, buttonInertval*7/8, 0, 0);
    4 关联点击
    [tmpButton addTarget:self action:@selector(btnPressed:) forControlEvents:UIControlEventTouchUpInside];

    button说到这里,上相关完整代码
    /*------------------------------------------生成button-----------------------------------------*/
    -(void)createButton:(CGFloat)buttonInertval andHeight:(CGFloat)height
    {
        for (int i=0; i<numOfMenu; i++) {
            // 生了一个button 原点  宽  高
            UIButton *tmpButton = [[UIButton alloc] initWithFrame:CGRectMake(i*buttonInertval,0,buttonInertval,height)];
            // 这个小button 的字体是14
            tmpButton.titleLabel.font = [UIFont systemFontOfSize:14.f];
            // 小button用的是正常状态
            [tmpButton setTitle:[[dataArray objectAtIndex:i] objectAtIndex:0] forState:UIControlStateNormal];
            //         小button 用了一个叫做扩展的 图片作为正常状态的图片
            [tmpButton setImage:[UIImage imageNamed:@"expandableImage"] forState:UIControlStateNormal];
            // 图片插在了这里 edge :边缘 优势
            // 设置button中文字和图片
            tmpButton.titleEdgeInsets=UIEdgeInsetsMake(0,0,0,0);
            tmpButton.imageEdgeInsets = UIEdgeInsetsMake(0, buttonInertval*7/8, 0, 0);
            // 小button 使用黑色的字体做题目
            [tmpButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
            // 添加点击事件
            [tmpButton addTarget:self action:@selector(btnPressed:) forControlEvents:UIControlEventTouchUpInside];
            // tag 默认值是0
            tmpButton.tag=i+1;
            [self addSubview:tmpButton];
        }
    }



    创建table:

    没什么好说的,上代码
    /*----------------------------------------添加tableview-----------------------------------------*/
    
    -(void)createTableView:(CGPoint)origin
    {
        //左栏
        _leftTableView = [[UITableView alloc] initWithFrame:CGRectMake(origin.x, self.frame.origin.y + self.frame.size.height, ScreenSize.size.width*0.7, 0) style:UITableViewStylePlain];
        _leftTableView.rowHeight = 38;
        _leftTableView.dataSource = self;
        _leftTableView.delegate = self;
        
        
        //右栏
        _rightTableView = [[UITableView alloc] initWithFrame:CGRectMake(origin.x+ScreenSize.size.width*0.7, self.frame.origin.y + self.frame.size.height, ScreenSize.size.width*0.3, 0) style:UITableViewStylePlain];
        _rightTableView.rowHeight = 38;
        _rightTableView.dataSource = self;
        _rightTableView.delegate = self;
        _rightTableView.separatorStyle = UITableViewCellSeparatorStyleNone;
        _rightTableView.backgroundColor = [UIColor colorWithWhite:0.9 alpha:1.f];
    }


    创建background

    这里说一下alpha是设置透明度
    相关:http://blog.csdn.net/caryaliu/article/details/7837916
    /*------------------------------------------背景-----------------------------------------*/
    -(void)createBackgroud:(CGPoint)origin
    {
        _backGroundView = [[UIView alloc] initWithFrame:CGRectMake(origin.x, origin.y, ScreenSize.size.width, ScreenSize.size.height)];
        
        // 解释一下昂:grayscale :灰度  specified:规定制定  opacity:不透明的
        // white:The grayscale value of the color object, specified as a value from 0.0 to 1.0.
        // The opacity value of the color object, specified as a value from 0.0 to 1.0.
        _backGroundView.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.0];
        // opaque  不透明
        _backGroundView.opaque = NO;
        // target action 模式
        UIGestureRecognizer *gesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(backgroundTapped:)];
        [_backGroundView addGestureRecognizer:gesture];
    }


    创建shadow

    这个的唯一作用就是作为self下面一条宽 0.5的线的存在
    /*------------------------------------------给menu划线-----------------------------------------*/
    -(void)createShadow
    {
        //add bottom shadow  这是一条线
        UIView *bottomShadow = [[UIView alloc] initWithFrame:CGRectMake(0, self.frame.size.height-0.5, ScreenSize.size.width, 0.5)];
        bottomShadow.backgroundColor = [UIColor lightGrayColor];
        [self addSubview:bottomShadow];
        self.backgroundColor=[UIColor whiteColor];
    }


    动画部分代码

    background动画

    1 添加背景的层次顺序:原界面+self  变成 原界面+background+self
            [self.superview addSubview:view];
            [view.superview addSubview:self];

    2 移除背景
    [view removeFromSuperview];
    

    3 整体代码展示
    /*---------------------------------展示和收回-------------------------------------*/
    // 激活背景视图:(某视图) 展示吗:(是否)
    - (void)animateBackGroundView:(UIView *)view show:(BOOL)show complete:(void(^)())complete {
        if (show) {
            
            //我——你(背景)——他(原图)
            [self.superview addSubview:view];
            [view.superview addSubview:self];
            
            [UIView animateWithDuration:0.2 animations:^{
                view.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.4];
            }];
        
        } else {
            // 消失动画  干掉背景
            [UIView animateWithDuration:0.2 animations:^{
                view.backgroundColor = [UIColor colorWithWhite:0.0 alpha:0.0];
            } completion:^(BOOL finished) {
                [view removeFromSuperview];
            }];
        }
        complete();
    }


    tableview动画

    - (void)animateTableViewShow:(BOOL)show complete:(void(^)())complete {
        if(show)
        {
            // 左边占了七分天下
            _leftTableView.frame = CGRectMake(self.origin.x, self.frame.origin.y+_height, ScreenSize.size.width*0.7, 0);
            [self.superview addSubview:_leftTableView];
            
            // 右边有三分
            _rightTableView.frame = CGRectMake(self.origin.x+ScreenSize.size.width*0.7, self.frame.origin.y+_height,ScreenSize.size.width*0.3, 0);
            [self.superview addSubview:_rightTableView];
            _leftTableView.alpha = 1.f;
            _rightTableView.alpha = 1.f;
            [UIView animateWithDuration:0.2 animations:^{
                _leftTableView.frame = CGRectMake(self.origin.x, self.frame.origin.y+_height, ScreenSize.size.width*0.7, ScreenSize.size.height/3);
                _rightTableView.frame = CGRectMake(self.origin.x+ScreenSize.size.width*0.7, self.frame.origin.y+_height, ScreenSize.size.width*0.3, ScreenSize.size.height/3);
            } completion:^(BOOL finished) {
            }];
        }else
        {
            [UIView animateWithDuration:0.2 animations:^{
                            _leftTableView.alpha = 0.f;
                            _rightTableView.alpha = 0.f;
                        } completion:^(BOOL finished) {
                            [_leftTableView removeFromSuperview];
                            [_rightTableView removeFromSuperview];
                        }];
            
        }complete();
    
    }


    逻辑部分代码

    -(void)btnPressed:(id)sender
    {
        UIButton *a=sender;
        currentSelectedMenudIndex=a.tag;
        CurrentArray=[[[dataArray objectAtIndex:currentSelectedMenudIndex-1] objectAtIndex:2] objectAtIndex:0];
    
        if (_show==0) {
            // 关闭所有
            for (NSInteger i=1; i<=numOfMenu;i++) {
                UIButton *tmpbutton=(UIButton*)[self viewWithTag:i];
                tmpbutton.imageView.transform=CGAffineTransformMakeRotation(0);
            }
            // 旋转图片
            a.imageView.transform=CGAffineTransformMakeRotation(M_PI);
            
            // Selects a row in the receiver identified by index path, optionally scrolling the row to a location in the receiver.
            // 以索引路径为标志选中接受者中的一行,可以选择滚动这一行到接受者的一个位置
            
            // animated :YES if you want to animate the selection and any change in position, NO if the change should be immediate.
            // 激活:如果你像激活选中单元,并且选择任意位置,那么可以选择是,不是,就是不激活
            NSIndexPath *selectedIndexPath = [NSIndexPath indexPathForRow:0 inSection:0];
            [self.rightTableView selectRowAtIndexPath:selectedIndexPath animated:YES scrollPosition:UITableViewScrollPositionNone];
        }else{
            // 全部关上
            for (NSInteger i=1; i<=numOfMenu;i++) {
                UIButton *tmpbutton=(UIButton*)[self viewWithTag:i];
                tmpbutton.imageView.transform=CGAffineTransformMakeRotation(0);
            }
        }
        [self animateBackGroundView:self.backGroundView show:!_show complete:^{
            [self animateTableViewShow:!_show complete:^{
                
                [self tableView:self.rightTableView didSelectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
                _show=!_show;
            }];
        }];
        [_rightTableView reloadData];
    }
    // 点击背景 显示动画
    - (void)backgroundTapped:(UITapGestureRecognizer *)paramSender
    {
        // 点击背景还能干啥呢?关闭呗
        
        [self animateBackGroundView:_backGroundView show:!_show complete:^{
            [self animateTableViewShow:!_show complete:^{
                 _show=!_show;
            }];
        }];
    }
    
    #pragma mark - table datasource
    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
            return [self menu:self tableView:tableView numberOfRowsInSection:section];
    }
    
    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        static NSString *identifier = @"DropDownMenuCell";
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
        if (!cell) {
            cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
        }
    
        cell.textLabel.text = [self menu:self tableView:tableView titleForRowAtIndexPath:indexPath];
    
        if(tableView == _leftTableView){
            cell.backgroundColor = [UIColor whiteColor];
        }else{
            UIView *sView = [[UIView alloc] init];
            sView.backgroundColor = [UIColor whiteColor];
            cell.selectedBackgroundView = sView;
            
    //    setSelected:animated:  设置选中项 :激活
    //        Sets the selected state of the cell, optionally animating the transition between states.
    // 设置cell的选择状态,可以选择过度状态之间的动画
            [cell setSelected:YES animated:YES];
            cell.backgroundColor = [UIColor colorWithWhite:0.9 alpha:1.f];
        }
        cell.textLabel.font = [UIFont systemFontOfSize:14.0];
        cell.separatorInset = UIEdgeInsetsZero;
        return cell;
    }
    
    
    #pragma mark - tableview delegate
    - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
            if (tableView == self.leftTableView) {
                [self animateBackGroundView:_backGroundView show:NO complete:^{
                    [self animateTableViewShow:NO complete:^{
                        
                        /*-----------------------------更改表头显示------------------------------*/
                        
                        UIButton *changeButton=(UIButton*)[self viewWithTag:currentSelectedMenudIndex];
                        UITableViewCell *tmpcell=[tableView cellForRowAtIndexPath:indexPath];
                        NSString *tmpString=tmpcell.textLabel.text;
                        [changeButton setTitle:tmpString forState:UIControlStateNormal];
                        _show =!_show;
                    }];
                }];
            }
        
        [self menu:self tableView:tableView didSelectRowAtIndexPath:indexPath andCurrent:currentSelectedMenudIndex-1];
        
    }
    
    
    #pragma mark- 处理数据
    - (NSInteger)menu:(DropDownClass *)menu tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section;
    {
        if (tableView == menu.rightTableView) {
            return [[[dataArray objectAtIndex:currentSelectedMenudIndex-1] objectAtIndex:1] count];
        }else{
            return [CurrentArray count];
        }
    }
    
    - (NSString *)menu:(DropDownClass *)menu tableView:(UITableView*)tableView titleForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        if(tableView==menu.rightTableView)
        {
    //        return cityArr[indexPath.row];
            return [[[dataArray objectAtIndex:currentSelectedMenudIndex-1]objectAtIndex:1] objectAtIndex:indexPath.row];
        }else{
            return [CurrentArray objectAtIndex:indexPath.row];
        }
    }
    /*--------------------------------点击右栏展示(刷新)左栏-----------------------------------*/
    - (void)menu:(DropDownClass *)menu tableView:(UITableView*)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath andCurrent:(NSInteger)culm
    {
        if(tableView == menu.rightTableView){
            menu.CurrentArray=[[[menu.dataArray objectAtIndex:culm] objectAtIndex:2]objectAtIndex:indexPath.row];
            [menu.leftTableView reloadData];
        }
    }
    
    -(NSMutableArray*)getData
    {
        NSMutableArray *tmpArray=[NSMutableArray new];
        
        for (int i=1; i<=currentSelectedMenudIndex; i++) {
            UIButton *tmpbutton=(UIButton*)[self viewWithTag:i];
            NSString *tmpString=tmpbutton.titleLabel.text;
            [tmpArray addObject:tmpString];
        }
        return tmpArray;
    }



    源代码

    https://git.oschina.net/zhengaoxing/DropDownMenuDemo-IOS

    本文地址:http://blog.csdn.net/zhenggaoxing/article/details/42968555 
    转载请注明出处




















    展开全文
  • (根据城市的名字, 城市的拼音, 城市的首字母筛选是否有查找的城市) ZHCity模型 模型中有name(城市名字), pinYin(城市的拼音), pinYinHead(城市首字母) 一个可变的数组(属性): self.resultCities 一个正常的思路 ...

    先用一个便于理解的方法, 表达出想要的结果

    首先说一下需要的数据

    (根据城市的名字, 城市的拼音, 城市的首字母筛选是否有查找的城市)

    ZHCity模型    模型中有name(城市名字), pinYin(城市的拼音), pinYinHead(城市首字母)

    一个可变的数组(属性): self.resultCities

    一个正常的思路

        self.resultCities = [NSMutableArray array];
        
        for (ZHCity *city in self.cities)
        {
            // 城市的name中包含了searchText
            // 城市的pinYin中包含了searchText
            // 城市的pinYinHead中包含了searchText
            if ([city.name containsString:searchText] || [city.pinYin containsString:searchText] || [city.pinYinHead containsString:searchText])
            {
                [self.resultCities addObject:city];
            }
        }

    下面用一个新知识点解决上面的问题

    谓词\过滤器: 利用一定条件从一个数组中过滤出想要的数据

    // 这个有点类似sql语句
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name contains %@ or pinYin contains %@ or pinYinHead contains %@", searchText, searchText, searchText]; // name\pinYin\pinYinHead不是随便写的, 是模型中的属性; contains是包含后面%@这个字符串
    self.resultCities = [self.cities filteredArrayUsingPredicate:predicate]; // 这个self.resultCities可以是一个不可变数组



    展开全文
  • IOS-筛选功能之封装重构

    千次阅读 2015-09-15 22:35:42
    IOS筛选功能之封装重构,很多电商公司都会用到这个功能吧大概,筛选应该很常用了,或者使用的就是模糊搜索等等之类的方法.
  • iOS 下拉筛选菜单列表

    2021-04-05 03:48:09
    作者Aufree,源码ESTCollectionViewDropDownList,一个开源的 iOS 下拉筛选菜单列表, 拥有类似虾米专辑频道筛选功能, 根据服务器返回的 Tag 数据动态计算视图高度, 隐藏菜单后将会显示已选择的标签,...
  • iOS 商品筛选模块

    2020-10-15 17:12:21
    分享一下商品通过综合,销量,价格等筛选模块,仅供参考,效果图如下: 上代码.h文件: @class HBSalesPriceTypeView; typedef NS_ENUM(NSInteger,HBButtonClickType){ HBButtonClickTypeNormal = 0, ...
  • iOS谓词筛选 数组

    2020-09-04 10:59:36
    NSArray *recIDs = [configModel.dataDic vv_arrayForKey:@... 筛选的结果就是order_goods_list所有rec_id在 被 recIDSarr包含的模型组成的数组 注: configModel.order_goods_list 中的数据模型包含rec_id属性
  • ios-筛选器.zip

    2019-07-11 19:03:21
    项目里做了个本地筛选的功能,单独整理了一个筛选器UI,希望能跟大家分享交流,大家多提意见或指正代码错误便于技术提高。
  • iOS仿Uber筛选栏效果

    2020-08-31 14:02:22
    主要为大家详细介绍了iOS仿Uber筛选栏的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • ios-分类筛选.zip

    2019-07-11 19:30:09
    分类筛选
  • IOS-筛选设计思想

    2019-09-09 09:37:43
    // 用来区分组别,以后就可以添加自定义筛选了, 每一块Section, 理论上说CELL模块是不需要的 typedef NS_ENUM(NSInteger, IStarFilterGroup){ ISTAR_GROUP_ROOT, ISTAR_GROUP_NORMAL, //正常类型 ISTAR_GROUP_...
  • 作者yuqingzhude,源码QZConditionFilterViewDemo,TableView条件筛选,类淘宝“销量最高”,“综合排序”
  • iOS NSPredicate数组筛选

    千次阅读 2016-04-12 19:00:28
    NSPredicate条件查询NSPredicate的作用 ...**条件查询一般是运用于按照条件要求将数组中符合条件的数据筛选出来形成一个新的数组,主要的功能大概如下:代码,例如:NSMutableArray *preditArray = [NSMutableArray arr
  • ios-仿京东筛选.zip

    2019-07-11 18:58:47
    仿京东弹出筛选页面,随便写的,没封装,凑合着看吧
  • iOS OC 谓词筛选

    2017-07-21 11:14:00
    //年龄小于30 //定义谓词对象,谓词对象中包含了过滤条件 NSPredicate *predicate = [NSPredicate predicateWithFormat:@"age<%d",30]; //使用谓词条件过滤数组中的元素,过滤之后返回查询的结果 ...
  • ios-复合筛选框.zip

    2019-07-11 19:14:29
    复合筛选框,简单实用
  • swift,列表按字母分类排序显示,iOS,类似通迅录列表的排序
  • 支持修改!简单方便,比较容易拉到项目中,plist文件储存;读取文件,显示三级列表
  • iOS 对象数据去重筛选

    2021-05-10 16:08:39
    最近写项目的时候 遇到加载的数据 有好多重复数据,于是就多方找解决方案,最佳解决方案... } } } } – 其实应该从根本上去看看为什么数据源会有重复数据,从根本上解决,我这种只是从结果中筛选出有效的数据进行呈现。
  • 文章地址:http://www.jianshu.com/p/f947ecbe8524
  • NSString *filterString = searchController.searchBar.text;    NSPredicate *predicate = [NSPredicate ...predicateWithFormat:@"self.name contains [c] %@", filterString];... self.se

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 666
精华内容 266
关键字:

ios筛选