2010-09-23 7 views
0

Я должен использовать календарь в своем приложении для iPhone. Я старался, но не смог найти встроенный API в iPhone SDK для этой цели. Теперь я собираюсь создать календарь самостоятельно и нуждаюсь в руководстве.необходимо руководство для создания календаря

Я создал 5 строк из 7 кнопок (т. Е. Всего 35 кнопок) и будет использовать его как дату, а затем я добавлю другие графики для дней и месяца. Я взял эти кнопки в массиве и буду добавлять/изменять их свойства в цикле.

У меня возникает сомнение в том, что это правильный подход или кто-то может предложить мне лучший подход.

btnCal29=[[UIButton alloc]initWithFrame:CGRectMake(22.0f, 312.0f, 35.0f, 35.0f)]; 
btnCal30=[[UIButton alloc]initWithFrame:CGRectMake(62.0f, 312.0f, 35.0f, 35.0f)]; 
btnCal31=[[UIButton alloc]initWithFrame:CGRectMake(102.0f, 192.0f, 35.0f, 35.0f)]; 
btnCal32=[[UIButton alloc]initWithFrame:CGRectMake(142.0f, 192.0f, 35.0f, 35.0f)]; 
btnCal33=[[UIButton alloc]initWithFrame:CGRectMake(182.0f, 192.0f, 35.0f, 35.0f)]; 
btnCal34=[[UIButton alloc]initWithFrame:CGRectMake(222.0f, 192.0f, 35.0f, 35.0f)]; 
btnCal35=[[UIButton alloc]initWithFrame:CGRectMake(262.0f, 192.0f, 35.0f, 35.0f)]; 

arrCalendarbutton = [[NSMutableArray alloc] initWithObjects:btnCal1,btnCal2,btnCal3,btnCal4,btnCal5,btnCal6,btnCal7,btnCal8,btnCal9,btnCal10,btnCal11,btnCal12,btnCal13,btnCal14,nil]; 

for(int i = 0; i<[arrCalendarbutton count];i++) 
{ 
    [(UIButton *)[arrCalendarbutton objectAtIndex:i] setBackgroundColor:[UIColor lightGrayColor]]; 
    [(UIButton *)[arrCalendarbutton objectAtIndex:i] addTarget:self action:@selector(cal) forControlEvents:UIControlEventTouchUpInside]; 
    [(UIButton *)[arrCalendarbutton objectAtIndex:i] setTitle:[NSString stringWithFormat:@"%d",i+1] forState:UIControlStateNormal]; 
    //[(UIButton *)[arrCalendarbutton objectAtIndex:i] setTitle:@"11" forState:UIControlStateNormal]; 
    [self.view addSubview: (UIButton *)[arrCalendarbutton objectAtIndex:i]]; 
} 

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

Я иду в правильном направлении? Есть ли способ лучше?

+0

О, мое повторение. Этот список может быть реализован программно с использованием циклов и коллекций (если вы не хотите использовать предложенную библиотеку). –

ответ

1

Существует также this answer к подобному вопросу.

+0

Я нашел свой календарь как кал-каландр здесь, спасибо – pankaj

5

Может быть, вы найдете эти ссылки полезные

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

сделать soemthing так:

NSMuteableArray *array = [[NSMUteableArray alloc] init]; 

for(int i=0; i<31; i++){ 
    UIButton *b = ....; 
    //customize b 
    [array addObject:b]; 
    [b release]; 
} 

Если итерация массива, для, каждый рекомендуется вместо

for(int i = 0; i<[arrCalendarbutton count];i++) 

сделать

for(UIButton *b in arrCalendarbutton) 
+0

Определенно не изобретайте велосипед. Просто возьмите Kal, или Tapku Lubrary, или GCCalendar, и поставьте им источник данных, и вы сделали. Эти ребята (особенно первые два, о которых я упоминал) потратили годы, чтобы их реализация выглядела красивой и функционировала быстро. Тем не менее, кроме того, там действительно не так много, что есть с открытым исходным кодом. Я смотрю. Я воссоздал Kal, чтобы пойти с макетом iPad, но он все еще не похож на iCal. –

Смежные вопросы