///Here is method to add multiple month into scroll view as like iPad Reminder application
//Replace your scroll view name
-(NSDate *)getCurrentDate{
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setCalendar:calendar];
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
[dateFormat setTimeZone:[NSTimeZone systemTimeZone]];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setTimeZone:[NSTimeZone systemTimeZone]];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
return [NSDate dateWithTimeInterval:0 sinceDate:[dateFormatter dateFromString:[dateFormat stringFromDate:[NSDate date]]]];
}
-(void)addCalander
{
NSDate *yourDate=[self getCurrentDate];
float s=7000;
float h=0;
float heightSC=0;
for(int m=0;m<=11;m++)
{
TKCalendarMonthView *calendar1=[[TKCalendarMonthView alloc] init];
calendar1.delegate = self;
calendar1.dataSource = self;
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *todayComponents = [gregorian components:(NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit) fromDate:yourDate];
NSInteger theDay = [todayComponents day];
NSInteger theMonth = [todayComponents month];
NSInteger theYear = [todayComponents year];
// now build a NSDate object for yourDate using these components
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setDay:theDay];
[components setMonth:theMonth];
[components setYear:theYear];
NSDate *thisDate = [gregorian dateFromComponents:components];
h=calendar1.frame.size.height+2;
// now build a NSDate object for the next day
NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
[offsetComponents setMonth:-1];
NSDate *nextDate = [gregorian dateByAddingComponents:offsetComponents toDate:thisDate options:0];
[calendar1 selectDate:nextDate];
s=s-calendar1.frame.size.height+2;
yourDate=nextDate;
heightSC=heightSC+calendar1.frame.size.height+2;
}
yourDate=[self getCurrentDate];
s=heightSC;
for(int m=11;m>=0;m--)
{
TKCalendarMonthView *calendar1=[[TKCalendarMonthView alloc] init];
calendar1.delegate = self;
calendar1.dataSource = self;
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *todayComponents = [gregorian components:(NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit) fromDate:yourDate];
NSInteger theDay = [todayComponents day];
NSInteger theMonth = [todayComponents month];
NSInteger theYear = [todayComponents year];
// now build a NSDate object for yourDate using these components
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setDay:theDay];
[components setMonth:theMonth];
[components setYear:theYear];
NSDate *thisDate = [gregorian dateFromComponents:components];
h=calendar1.frame.size.height;
// now build a NSDate object for the next day
NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
[offsetComponents setMonth:-1];
NSDate *nextDate = [gregorian dateByAddingComponents:offsetComponents toDate:thisDate options:0];
[calendar1 selectDate:nextDate];
s=s-calendar1.frame.size.height;
UIView *view_c=[[UIView alloc]initWithFrame:CGRectMake(0, s, 224, calendar1.frame.size.height)];
[self.view addSubview:scroll];
[view_c addSubview:calendar1];
[scroll addSubview:view_c];
yourDate=nextDate;
}
//NSLog(@"s out is %f",s);
yourDate=[self getCurrentDate];
s=heightSC;
for(int m=11;m<35;m++)
{
TKCalendarMonthView *calendar1=[[TKCalendarMonthView alloc] init];
calendar1.delegate = self;
calendar1.dataSource = self;
NSCalendar *gregorian = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *todayComponents = [gregorian components:(NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit) fromDate:yourDate];
NSInteger theDay = [todayComponents day];
NSInteger theMonth = [todayComponents month];
NSInteger theYear = [todayComponents year];
int fla=1;
if(theDay==1){
fla=0;
}
// now build a NSDate object for yourDate using these components
NSDateComponents *components = [[NSDateComponents alloc] init];
[components setDay:theDay];
[components setMonth:theMonth];
[components setYear:theYear];
NSDate *thisDate = [gregorian dateFromComponents:components];
// now build a NSDate object for the next day
NSDateComponents *offsetComponents = [[NSDateComponents alloc] init];
if(fla==0)
{
[offsetComponents setDay:32];
}
else
{
[offsetComponents setMonth:1];
}
NSDate *nextDate = [gregorian dateByAddingComponents:offsetComponents toDate:thisDate options:0];
if(m==11)
{
nextDate=yourDate;
calendarScrollingPosition = s;
}
[calendar1 selectDate:nextDate];
UIView *view_c=[[UIView alloc]initWithFrame:CGRectMake(0, s, 224, calendar1.frame.size.height)];
s=s+calendar1.frame.size.height+2;
[self.view addSubview:view_c];
[scroll addSubview:view_c];
[view_c addSubview:calendar1];
yourDate=nextDate;
}
scroll.contentSize=CGSizeMake(150, s);
[scroll setShowsHorizontalScrollIndicator:NO];
[scroll setShowsVerticalScrollIndicator:NO];
[scroll setContentOffset:CGPointMake(0, calendarScrollingPosition) animated:NO];
}
No comments:
Post a Comment