2010-09-23 74 views
0

我必須在我的iPhone應用程序中使用日曆。我努力嘗試,但是在iPhone SDK中找不到任何內置的API來達到這個目的。現在我要自己創建日曆並需要一些指導。需要製作日曆的指導

我創建了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

哦,我的重複。該列表可以通過使用循環和集合以編程方式實現(如果您不提示庫選項)。 – 2010-09-23 14:25:32

回答

1

還有this answer也有類似的問題。

+0

我在這裏找到了我的日曆作爲kal日曆,謝謝 – pankaj 2010-09-29 12:19:17

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。 – 2011-06-14 03:53:15