iOS仿Uber筛选栏效果

发布时间 - 2026-01-10 22:44:19    点击率:

这个是之前项目中用的仿Uber筛选栏,现在要改了,改之前把这个记录下来,万一有人用到了,就可以直接拿来用了,这个是在大神的基础上改的,还行吧,但是觉得有点丑!有需要的可以看一下,方法有点笨,大神勿喷。

1.加载数据

 * 加载数据
 */
- (void)loadData{
 timeArray = @[@"6小时之内",@"12小时之内",@"24小时之内"];
 locationArray = @[@"全城",@"附近1km",@"附近3千米",@"附近5千米",@"附近10千米"];
 piceArray = @[@"价格不限",@"0-5元",@"5-20元",@"20-50元",@"50-100元"];

}

2.加载视图

 * 加载UI视图
 */
-(void)shuaxin{

 dicengbackeView = [[UIView alloc]initWithFrame:CGRectMake(0, kScreenHeight-140, kScreenWidth, 420)];

 dicengbackeView.backgroundColor = [UIColor colorWithWhite:0.850 alpha:1.000];

 [self.view addSubview:dicengbackeView];

 filter = [[SEFilterControlList alloc]initWithFrame:CGRectMake((kScreenWidth-300)/2, -5, 300, 30) Titles:[NSArray arrayWithObjects:@"时间", @"附近", @"价格",nil]];

 filter.userInteractionEnabled = YES;

 [filter addTarget:self action:@selector(filterValueChanged:) forControlEvents:UIControlEventTouchUpInside];

 [filter setProgressColor:[UIColor groupTableViewBackgroundColor]];//设置滑杆的颜色

 [filter setTitlesFont:[UIFont fontWithName:@"Didot" size:16]];

 [filter setTopTitlesColor:[UIColor blackColor]];//设置滑块上方字体颜色

 [filter setSelectedIndex:0];//设置当前选中

 [dicengbackeView addSubview:filter];


 Button_UIView = [[UIView alloc]initWithFrame:CGRectMake(0, 70,kScreenWidth,240)];

 Button_UIView.backgroundColor = [UIColor colorWithWhite:0.730 alpha:1.000];

 [dicengbackeView addSubview:Button_UIView];

 _backsrollView = [[UIScrollView alloc]initWithFrame:CGRectMake(0, 0,kScreenWidth , 240)];

 _backsrollView.pagingEnabled = YES;

 _backsrollView.userInteractionEnabled = YES;

 _backsrollView.contentSize =CGSizeMake(kScreenWidth*3, 0);
 //设置是否滚动
 _backsrollView.scrollEnabled = NO;

 [Button_UIView addSubview:_backsrollView];

 imageView1 = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, kScreenWidth, _backsrollView.frame.size.height)];

 imageView2 = [[UIImageView alloc]initWithFrame:CGRectMake(kScreenWidth, 0, kScreenWidth, _backsrollView.frame.size.height)];

 imageView3 = [[UIImageView alloc]initWithFrame:CGRectMake(kScreenWidth*2, 0, kScreenWidth, _backsrollView.frame.size.height)];
#pragma mark ==========Loading===================
 imageView1.userInteractionEnabled = YES;

 imageView2.userInteractionEnabled = YES;

 imageView3.userInteractionEnabled = YES;

#pragma mark ==========Loading===================
 for (int g =0; g<3; g++) {

  UIButton *button1 = [UIButton buttonWithType:UIButtonTypeCustom];

  button1.frame = CGRectMake(0, (180/3)*g, kScreenWidth, 180/3);
  button1.backgroundColor = [UIColor colorWithWhite:0.850 alpha:1.000];

  [button1 setTitle:timeArray[g] forState:UIControlStateNormal];

  [button1 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

  button1.tag = 100+g;

  button1.titleLabel.textAlignment = NSTextAlignmentCenter;

  button1.layer.borderColor = [[UIColor colorWithWhite:0.837 alpha:1.000] CGColor];

  button1.layer.borderWidth = 1.0f;

  [button1 addTarget:self action:@selector(timebtn:) forControlEvents:UIControlEventTouchUpInside];

  [imageView1 addSubview:button1];

 }

 for (int k =0; k<5; k++) {

  UIButton *button2 = [UIButton buttonWithType:UIButtonTypeCustom];

  button2.frame = CGRectMake(0, (180/5)*k, kScreenWidth, 180/5);
  button2.backgroundColor = [UIColor colorWithWhite:0.850 alpha:1.000];

  [button2 setTitle:locationArray[k] forState:UIControlStateNormal];

  [button2 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

  button2.tag = 200+k;

  button2.titleLabel.textAlignment = NSTextAlignmentCenter;

  button2.layer.borderColor = [[UIColor colorWithWhite:0.837 alpha:1.000] CGColor];

  button2.layer.borderWidth = 1.0f;

  [imageView2 addSubview:button2];

  [button2 addTarget:self action:@selector(timebtn:) forControlEvents:UIControlEventTouchUpInside];

 }

 for (int y =0; y<5; y++) {

  UIButton *button3 = [UIButton buttonWithType:UIButtonTypeCustom];

  button3.frame = CGRectMake(0, (180/5)*y, kScreenWidth, 180/5);

  button3.backgroundColor = [UIColor colorWithWhite:0.850 alpha:1.000];

  [button3 setTitle:piceArray[y] forState:UIControlStateNormal];

  [button3 setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];

  button3.tag = 300+y;

  button3.titleLabel.textAlignment = NSTextAlignmentCenter;

  button3.layer.borderColor = [[UIColor colorWithWhite:0.837 alpha:1.000] CGColor];

  button3.layer.borderWidth = 1.0f;

  [imageView3 addSubview:button3];

  [button3 addTarget:self action:@selector(timebtn:) forControlEvents:UIControlEventTouchUpInside];
 }

 [_backsrollView addSubview:imageView1];

 [_backsrollView addSubview:imageView2];

 [_backsrollView addSubview:imageView3];

}

- (void)filterValueChanged:(SEFilterControlList *)sender{

 NSLog(@"%d",sender.SelectedIndex);
 switch (sender.SelectedIndex) {
  case 0:{

   break;
  }
  case 1:{

   break;
  }
  case 2:{

   break;
  }
  default:
   break;
 }

 _backsrollView.contentOffset = CGPointMake([sender SelectedIndex]*kScreenWidth, 0);

// self.table.contentInset = UIEdgeInsetsMake(0, 0, 230, 0);

 [UIView animateWithDuration:0.2 animations:^{


  [UIView animateWithDuration:0.2 animations:^{

   dicengbackeView.frame = CGRectMake(0,kScreenHeight-310 , kScreenWidth,310);
  }];


 } completion:^(BOOL finished) {

 }];

}


- (void)timebtn:(UIButton *)sender{

 switch (sender.tag) {
  case 100:{

   [shaixuan setObject:@"6" forKey:@"times"];

   [self dianji];
   [self chuanzhi];

   break;
  }
  case 101:{



   [shaixuan setObject:@"12" forKey:@"times"];


   [self dianji];
   //   [self pianyi];
   [self chuanzhi];
   break;
  }
  case 102:{

   [shaixuan setObject:@"24" forKey:@"times"];


   [self dianji];
   //   [self pianyi];
   [self chuanzhi];
   break;
  }

  case 200:{


   [shaixuan setObject:@"0" forKey:@"nearby"];


   [self dianji];
   //   [self pianyi];
   [self chuanzhi];

   break;
  }

  case 201:{



   [shaixuan setObject:@"1" forKey:@"nearby"];


   [self dianji];
   //   [self pianyi];
   [self chuanzhi];

   break;
  }

  case 202:{



   [shaixuan setObject:@"3" forKey:@"nearby"];


   [self dianji];
   //   [self pianyi];
   [self chuanzhi];

   break;
  }


  case 203:{



   [shaixuan setObject:@"5" forKey:@"nearby"];

   [self dianji];
   //   [self pianyi];
   [self chuanzhi];

   break;
  }


  case 204:{



   [shaixuan setObject:@"10" forKey:@"nearby"];


   [self dianji];
   //   [self pianyi];
   [self chuanzhi];

   break;
  }

  case 300:{



   [shaixuan setObject:@"0" forKey:@"pricenumber"];


   [self dianji];
   //   [self pianyi];
   [self chuanzhi];

   break;
  }
  case 301:{



   [shaixuan setObject:@"1" forKey:@"pricenumber"];


   [self dianji];
   //   [self pianyi];
   [self chuanzhi];
   break;
  }
  case 302:{



   [shaixuan setObject:@"2" forKey:@"pricenumber"];


   [self dianji];
   //   [self pianyi];
   [self chuanzhi];

   break;
  }
  case 303:{

   [shaixuan setObject:@"3" forKey:@"pricenumber"];

   [self dianji];
   //   [self pianyi];
   [self chuanzhi];

   break;
  }
  case 304:{

   [shaixuan setObject:@"4" forKey:@"pricenumber"];


   [self dianji];
   //   [self pianyi];
   [self chuanzhi];

   break;
  }
  default:
   break;
 }
#pragma mark ===================

}


-(void)dianji{


 [UIView animateWithDuration:0.2 animations:^{

  dicengbackeView.frame = CGRectMake(0, kScreenHeight-135, kScreenWidth, 370);
 }];
}
//将参数传给后台,请求数据
-(void)chuanzhi{


}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# iOS  # 筛选栏  # angularjs 实现带查找筛选功能的select下拉框实例  # Angularjs实现带查找筛选功能的select下拉框示例代码  # AngularJs页面筛选标签小功能  # js实现表格筛选功能  # jquery遍历数组与筛选数组的方法  # jquery遍历筛选数组的几种方法和遍历解析json对象  # JQuery筛选器全系列介绍  # Jquery仿淘宝京东多条件筛选可自行结合ajax加载示例  # jQuery筛选器children()案例详解(图文)  # angular实现商品筛选功能  # 加载  # 大神  # 之内  # 是在  # 基础上  # 用了  # 看一下  # 改了  # 还行  # 大家多多  # 就可以  # 有人用  # 滑块  # action  # NSArray  # Titles  # userInteractionEnabled  # addTarget  # arrayWithObjects  # nil 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 网站建设整体流程解析,建站其实很容易!  如何在万网主机上快速搭建网站?  Windows10如何更改计算机工作组_Win10系统属性修改Workgroup  Laravel如何实现数据库事务?(DB Facade示例)  在Oracle关闭情况下如何修改spfile的参数  深圳网站制作培训,深圳哪些招聘网站比较好?  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  EditPlus中的正则表达式 实战(1)  如何在服务器上三步完成建站并提升流量?  Laravel如何处理表单验证?(Requests代码示例)  教你用AI润色文章,让你的文字表达更专业  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  如何用虚拟主机快速搭建网站?详细步骤解析  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  bing浏览器学术搜索入口_bing学术文献检索地址  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  Laravel怎么自定义错误页面_Laravel修改404和500页面模板  网站制作公司哪里好做,成都网站制作公司哪家做得比较好,更正规?  Laravel如何创建自定义中间件?(Middleware代码示例)  HTML5空格和margin有啥区别_空格与外边距的使用场景【说明】  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  如何在阿里云完成域名注册与建站?  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  Laravel怎么进行浏览器测试_Laravel Dusk自动化浏览器测试入门  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  简单实现jsp分页  Laravel如何记录自定义日志?(Log频道配置)  Laravel如何使用Guzzle调用外部接口_Laravel发起HTTP请求与JSON数据解析【详解】  如何在IIS7上新建站点并设置安全权限?  Laravel如何处理CORS跨域问题_Laravel项目CORS配置与解决方案  Laravel Asset编译怎么配置_Laravel Vite前端构建工具使用  Python文件操作最佳实践_稳定性说明【指导】  Laravel Vite是做什么的_Laravel前端资源打包工具Vite配置与使用  网站制作软件免费下载安装,有哪些免费下载的软件网站?  JavaScript常见的五种数组去重的方式  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  Laravel如何与Vue.js集成_Laravel + Vue前后端分离项目搭建指南  Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门  如何在阿里云香港服务器快速搭建网站?  如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)  企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?  Laravel如何自定义错误页面(404, 500)?(代码示例)  如何自定义建站之星模板颜色并下载新样式?  如何快速启动建站代理加盟业务?  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  Laravel如何监控和管理失败的队列任务_Laravel失败任务处理与监控  js实现获取鼠标当前的位置  公司门户网站制作公司有哪些,怎样使用wordpress制作一个企业网站?