iOS预订座位Demo

自己在工作当中有一个预订座位的需求,于是自己就捣鼓了一下。这个需求是根据日期、人数、时间去预订座位,并且会消耗相应的积分,以下是效果图。

IMG_1600.PNG

1、模块分解

这里可以分为5个模块:
1、日期模块 -> 是一个单选框RadioBox
2、人数模块 -> 也是一个单选框RadioBox
3、时间模块 -> 是一个多选框CheckBox
4、享座专属 -> 普通的label展示
5、底部积分确认按钮 -> 普通的button按钮(需根据选择情况改变文字)

2、界面搭建

我是放在tableview里面的,具体的看我代码。Demo

3、逻辑处理

刚进入该界面时,如果今天的座位被预订完了,默认变为明天,依次类推;人数默认固定位1人不变;日期也是默认第一个时间段,当第一个时间段被预订了就自动变灰,默认时间段也依次往后类推选择一个。

日期、人数、时间的改变会影响底部按钮积分的变化,此时就需要这四个地方相互关联

关键代码:

#pragma mark---按钮点击的代理方法
//选择日期的代理方法
-(void)selectDateWidthValue:(NSString *)value index:(NSInteger)index{
    //更新时间按钮的状态
    [_timeCell updateButtonStstusWidthIsDefaultSelect:NO unSelectIndexArr:@[@(index)]];
    //积分按钮的状态
    self.dateSelectIndex = index;
    [_confirmView calculatePointsWithUserPoints:self.userPoints freezePoints:self.freezePoints numberIndex:self.numberSelectIndex timeSelectArr:self.timeCell.selectMuArr];
}
//选择人数的代理方法
-(void)selectNumberWidthValue:(NSString *)value index:(NSInteger)index{
    //更新时间按钮的状态
    [_timeCell updateButtonStstusWidthIsDefaultSelect:NO unSelectIndexArr:@[@(index)]];
    //积分按钮的状态
    self.numberSelectIndex = index;
    [_confirmView calculatePointsWithUserPoints:self.userPoints freezePoints:self.freezePoints numberIndex:self.numberSelectIndex timeSelectArr:self.timeCell.selectMuArr];
}
//选择时间的代理方法
-(void)selectIndexArr:(NSArray *)indexArr{
    //积分按钮的状态
    [_confirmView calculatePointsWithUserPoints:self.userPoints freezePoints:self.freezePoints numberIndex:self.numberSelectIndex timeSelectArr:self.timeCell.selectMuArr];
}
//底部按钮的点击事件代理
-(void)bottomButtonSelectTypt:(BottomButtonType)type callbackStr:(NSString *)str{
    if (type == BottomTipButton) {//提示按钮
        NSLog(@"-----%@",@"跳转积分说明");
    }else if (type == BottomConfirmButton){//确认按钮
        NSLog(@"-----%@",str);
    }
}

以上代码不能有效理出逻辑,如果想要理顺逻辑,请看我的代码Demo

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,037评论 3 119
  • 公司:海通食品集团有限公司 组别: 340期【反省一组】学员 【知~学习】 诵读《六项精进大纲》1遍 共28遍 背...
    ting8596阅读 910评论 0 0
  • 我觉得春燕特别可怜,她已经失去周六福了,周六福还劝她,和自己不爱的男人在一起,然后作为情敌的苏兰还一而再再而三的逼...
    沈春阳粉丝团阅读 1,748评论 0 0
  • 现在,越来越多的人需要通过朋友圈展示个人形象。不仅仅是在微信里做生意的微商,更多的职场人需要通过微信展示自己、展示...
    风的季阅读 2,713评论 0 0
  • 其实,投资比多数人想像的要容易得多。因为基本上我们只需注意三点: 1.应该把钱投资在安全的地方。 这是必须的,我们...
    梦想搬砖者阅读 2,507评论 4 4