【问题标题】:how to set images in the calender view iPhone如何在 iPhone 的日历视图中设置图像
【发布时间】:2012-02-18 18:23:15
【问题描述】:

我正在开发一个基于日历的应用程序,我的客户需要在用户选择的特定日期设置图像。

例如,如果我选择 1 和 20,则在两个日期都设置图像。

现在我只能为一个日期设置图像,即如果我选择 1,图像设置在该日期,当我选择 20 时,设置在 1 的图像将消失,图像将仅设置为 20。

任何人都可以帮助我如何做到这一点。

提前致谢。

【问题讨论】:

  • 你用什么来显示日历,这多半是自定义的,因为iOS SDK没有提供这样的组件。
  • @MuditBajpai 现在我可以为一个日期设置图像,但需要为多个日期设置图像。你能帮帮我吗。
  • 我希望你有一个日期参考作为 selectedDate,你不需要两个日期对吗?如果我是正确的,请再使用一个 NSDate 变量作为 selectedDate2,并检查您的条件并像第一个一样添加图像

标签: iphone objective-c


【解决方案1】:

我终于找到了解决方案。我在方法中完成了,各位专家可以为此提出更好的方法。

- (void)selectButtonForDate:(NSDate *)aDate {



    if (selectedButton >= 0) {
        NSDate *todayDate = [CalendarLogic dateForToday];
        UIButton *button = [buttonsIndex objectAtIndex:selectedButton];

        CGRect selectedFrame = button.frame;
        if ([selectedDate compare:todayDate] != NSOrderedSame) {
            selectedFrame.origin.y = selectedFrame.origin.y + 1;
            selectedFrame.size.width = kCalendarDayWidth;
            selectedFrame.size.height = kCalendarDayHeight;
        }

        button.selected = NO;
        button.frame = selectedFrame;

        self.selectedButton = -1;
        self.selectedDate = nil;
    }

    if (aDate != nil) {
        // Save
        CGRect dayFrame;
        NSDate *dayDate;
        NSInteger numberOfWeeks = 5;
   //     NSCalendar *calendar = [NSCalendar currentCalendar];
       // NSDateComponents *components = [calendar components:(NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit) fromDate:[NSDate date]];   
   //     NSDate *todayDate = [calendar dateFromComponents:components];

        for (NSInteger aWeek = 0; aWeek <= numberOfWeeks; aWeek ++) {
            CGFloat positionY = (aWeek * kCalendarDayHeight) + 60;

            for (NSInteger aWeekday = 1; aWeekday <= numberOfDaysInWeek; aWeekday ++) {
                CGFloat positionX = ((aWeekday - 1) * kCalendarDayWidth) - 1;
                dayFrame = CGRectMake(positionX, positionY, kCalendarDayWidth, kCalendarDayHeight);
                dayDate = [CalendarLogic dateForWeekday:aWeekday 
                                                 onWeek:aWeek 
                                          referenceDate:[name referenceDate]];
            //  NSLog(@" %@ todaydate [datesIndex objectAtIndex:[sender tag] %@",todayDate,[datesIndex objectAtIndex:[sender tag]]);
              //  NSDate *mmm = [datesIndex objectAtIndex:[sender tag]];
                if ([dayDate isEqualToDate:aDate]) {
                     NSUserDefaults *currentDefaults = [NSUserDefaults standardUserDefaults];

                    flag = 1;                 
                    [n addObject:[NSValue valueWithCGRect:dayFrame]];



                    [currentDefaults setObject:[NSKeyedArchiver archivedDataWithRootObject:n] forKey:SaveMonth];
                    [currentDefaults synchronize];
            }



            }
        }
        if(flag == 1){

            flag = 0;
            for (int i=0;i<[n count];i++){


                UIImageView *im = [[UIImageView alloc]initWithImage:[UIImage imageNamed:@"call.png"]] ;
                CGRect myRect = [[n objectAtIndex:i] CGRectValue];
//                NSLog(@"n is %@",n  );
//                NSLog(@"frame 111111111111111  = %@\n", NSStringFromCGRect(myRect));

                im.frame = myRect;
                [self addSubview:im];


            }
        }

【讨论】:

  • 嗨,我也尝试这样做。您使用的是 KAL 库还是其他东西?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-25
  • 2011-10-01
  • 2012-12-16
  • 2014-12-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多