iOS自定义日历控件(数据是服务器返回)

2017-10-02  本文已影响77人  block_smile
项目中涉及到日期课表,需要使用日历控件,找了一些第三方的demo,由于需要根据服务器返回的数据来显示日历的详情,所以都不太合适,就自己动手写了一个和大家分享.

代码:

 - (void)loadCalenderData {
    //获取当前月的第一天零时刻时间戳
    NSArray *firstDayArray = [self getFirstAndLastDayOfThisMonth];
    NSDate *firstDay = firstDayArray.firstObject;
    NSTimeInterval time = [firstDay timeIntervalSince1970];

    NSString *tokens = [kUserDefaults objectForKey:saveCompleteToken];
    FXNetwork *net = [[FXNetwork alloc]init];
    NSString *usrds = OCSTR(@"%@?month_time=%f",Teacher_Calender_GetCourseData,time);

    [net requsetWithUrl:usrds withToken:tokens withParams:nil withCacheType:FXClientReloadIgnoringLocalCacheData withRequestType:NetworkGetType withResult:^(id responseObject, NSError *error) {
          if (!error) {
            if ([[responseObject objectForKey:@"code"]integerValue] == 0) {
                NSLog(@"%@",responseObject);
                NSArray *tempTotalArray = [[responseObject objectForKey:@"data"] objectForKey:@"items"];
            
                for (int i = 0; i < tempTotalArray.count; i++) {
                
                    NSArray *tempArray = tempTotalArray[i];
                    NSMutableArray *temp1 = [NSMutableArray array];
                    for (int j = 0; j < tempArray.count; j++) {
                        NSDictionary *dict = tempArray[j];
                        FXCalenderModel *model = [FXCalenderModel yy_modelWithDictionary:dict];
                        [self.calenderRowArray addObject:model];
                        [temp1 addObject:model];
                }
                    [self.calenderTotalArray addObject:temp1];
                }
            
                NSString *timestr = [[responseObject objectForKey:@"data"] objectForKey:@"month_time"];
                self.currentMonthStr = [NSString getYearAndMonthStringWithTimestamp:[timestr doubleValue]];
            
                self.labMonth.text = self.currentMonthStr;
            
                [self.circleView reloadData];
                self.circleView.contentOffset = CGPointMake(SCREEN_WIDTH * 3 * kseed , 0);
            } else {
                [self showAlert:[responseObject objectForKey:@"message"] andDisAppearAfterDelay:2.0];
            }
        }
    }];
}
1 2

谢谢!

上一篇 下一篇

猜你喜欢

热点阅读