iOS中的自定义日历

时间:2017-04-20 06:48:54

标签: ios objective-c swift calendar

我想在日期下的日历上添加价格值。与下图相同。

enter image description here

我尝试了许多第三方库,例如FSCalendarJTCalendarawesome-ios-ui,但尚未成功。

是否还有其他库或解决方案。?我想在日历上的日期下添加价格标签。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

我认为您应该使用自定义UICollectionView,其中节的数量为2,并确保第1节中的单元格数为7,并且节中的单元格数为42。 制作一个有数周日名称的静态数组 arrOfWeekDayName = [NSArray arrayWithObjects:@"SUN",@"MON", @"TUE", @"WED", @"THU", @"FRI", @"SAT", nil];

- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView*)collectionView
{
return 2;
}

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
if (section == 0)
{
    return arrOfWeekDayName.count;
}
else{
    return 42;
    }
}

现在将自定义UICollectionViewCell用于显示周日名称 第二个是奖品和图片的展示日期,无论你想在你的细胞中展示什么。

例如,我首先采用两个自定义UICollectionViewCell weekCell,其次是dateCell

weekCell只有一个标签,只显示日期名称 dateCell有三个属性lblDatelblPrizeimgCell,您可以根据自己的要求添加。

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath{
if (indexPath.section == 0)
{
    weekCell *cell = (weekCell*)[collectionView dequeueReusableCellWithReuseIdentifier:@“weekCell” forIndexPath:indexPath];
    cell.lblDay.text =[arrOfWeekDayName objectAtIndex:indexPath.row];
    if (indexPath.row == 0)
    {
        cell.backgroundColor = [UIColor redColor];
    }
    else
    {
        cell.backgroundColor =  [UIColor colorWithRed:63.0/255.0f green:65.0/255.0f blue:70.0/255.0f alpha:1.0];
    }
    return cell;
}
else
{
    dateCell *cell = (dateCell*)[collectionView dequeueReusableCellWithReuseIdentifier:@“dateCell" forIndexPath:indexPath];
    cell.lblDate.font = [UIFont fontWithName:@"HelveticaNeue-Bold" size:12];
    cell.lblPrize.text= [NSString strngWithFormat:@“$5”];
    cell.imgCell.image = [UIImage imageNamed:@“myImage”];
 return cell;
}
}

当您填写一个月的值时,您需要此42个单元格的所有值 根据几个月来管理这个细胞。 mange细胞背景颜色白天

 FirstDateOfMonth = [CommonOps firstDayOfMonth:currentdate ];
    LastDateOfMonth = [CommonOps lastDayOfMonth:currentdate];
    if ([self date:date isEqualOrAfter:LastDateOfMonth])
    {
        cell.lblDateTitle.textColor = [UIColor grayColor];
        cell.backgroundColor =  [UIColor colorWithRed:209/256. green:209/256. blue:209/256. alpha:.5];
        cell.userInteractionEnabled = true;
    }
    else if ([self date: date isEqualOrBefore: FirstDateOfMonth])
    {
        cell.lblDateTitle.textColor = [UIColor grayColor];
        cell.backgroundColor =   [UIColor colorWithRed:209/256. green:209/256. blue:209/256. alpha:.5];
        cell.userInteractionEnabled = true;
    }
    else
    {
        cell.backgroundColor =   [UIColor colorWithRed:243/256. green:221/256. blue:159/256. alpha:.5];
        cell.userInteractionEnabled = true;
        if ([self date:currentdate isTheSameDayThan:date])
        {
            ValueToDisplayOnHeaderFirstTime = indexPath.row;
        }
        cell.lblDateTitle.textColor = [UIColor blackColor];
    }
    if (indexPath.row == 0 || indexPath.row == 7 || indexPath.row == 14 || indexPath.row == 21 || indexPath.row == 28|| indexPath.row == 35 )
    {
        cell.backgroundColor =   [UIColor colorWithRed:250/256. green:195/256. blue:181/256. alpha:.5];
        cell.lblDateTitle.textColor = [UIColor redColor];
    }

如果您对此有任何疑惑,请在评论部分告诉我

答案 1 :(得分:1)

JTAppleCalendar可以为你构建这个(不要与JTCalendar混淆)。

似乎有详细记录。 易于安装。 如果该库无法为您构建日历,那么我会感到震惊。我在大约7分钟内完成了我的日历(完全设计)。

找到的文档Here

找到Cocoapod链接Here

Github链接找到Here