关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回

iOS如何实现仿Uber筛选栏效果

发布时间:2022-09-27 11:08:45

小编给大家分享一下iOS如何实现仿Uber筛选栏效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

iOS如何实现仿Uber筛选栏效果

iOS如何实现仿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如何实现仿Uber筛选栏效果”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注风纳云行业资讯频道!

另外有需要云服务器可以了解下风纳云fengnayun.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


/template/Home/Dawn/PC/Static

选择风纳云,也许是您成就一番大事业的开端

注册账号