IOS-筛选功能之封装重构

本文介绍了在iOS应用中实现筛选功能的详细过程,包括自定义筛选项UI、响应式布局、枚举类型用于区分不同筛选类别、九宫格算法以及状态保存。通过封装和优化,实现了点击展开、高度适应及数据绑定等功能。
摘要由CSDN通过智能技术生成

最近项目中用到筛选功能 具体效果图如下


做这个之前 我先考虑到的是 每个Item 之间的算法和自定义的每个Item样式的UI,其次我们要考虑产品的业务逻辑以及点击展开后的Height和Top

自定义的View 也就是Item 就不多说了,很简单.

1.我们整个白色的View 背景要满足点击展开后的效果,也就是我们要随着每个展开的高度做适应,首先我选择用的是滚动视图

2.筛选功能一般是一个按钮点击触发的,动画特效在这也不多说,因为点击筛选后 下拉出来的界面每个第一个选项默认选中,所以我们要点击的时候就要知道对应的值

3.关于请求数据:我这里选择胖model的结构方式, 把使用到的结构体都丢到整体model  例子:   

                weakSelf.filterCondition = [[MYFilterConditionModel alloc] initWithJson:dict];

这样就比较方便了一行就可以满足我们接受所有服务器返回的结构体或者数组字典等等
4.创建每一个View 拿品牌来说,整个品牌(Title) + 下面排序的Item + 展开按钮 都是一个整体View  每次都要去创建一个对象View 丢到数组中 在从中抽取
5.改变 每个视图之间的Height 和Top   and  scrollview 的 contentSize   
 改变height 和top 的核心代码如下:

- (void)updateLayout

{

    CGFloat top = 0;

    for (MYSearchFilterConditionView *filter in self.searchArray) {

        filter.top =

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值