как установить изображения в календаре iPhone - PullRequest
3 голосов
/ 15 февраля 2012

Я разрабатываю приложение на основе календаря, и мой клиент должен установить изображение на определенную дату, которую выбирает пользователь.

Например, если я выбираю 1 и 20, изображение должно быть установлено на обе даты.

На данный момент я могу установить изображение только на одну дату, т. Е. Если я выберу 1, изображение будет установлено на эту дату, а когда я выберу 20, изображение, установленное на 1, исчезнет, ​​а изображение будет установлено только на 20.

Может кто-нибудь, пожалуйста, помогите мне, как это сделать.

Заранее спасибо. enter image description here

1 Ответ

1 голос
/ 18 февраля 2012

Я наконец нашел решение для этого. Я сделал в методе, и вы, эксперты, можете предложить лучший способ для этого.

- (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];


            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...