需要创建日历的指导

pan*_*kaj 0 iphone cocoa-touch objective-c ios

我必须在我的iPhone应用程序中使用日历.我努力了,但在iPhone SDK中找不到任何内置的API用于此目的.现在我要自己创建日历,需要一些指导.

我已经(在所有IE,35个键)创造了5行的7个按键,并使用它的日期,再后来,我会添加其他图形的日子和月份.我已经将这些按钮放在一个数组中,并将在循环中添加/更改它们的属性.

我怀疑这是否是正确的方法,或者是否有人可以向我提出更好的方法.

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]];
}
Run Code Online (Sandbox Code Playgroud)

我使用上面的代码来显示按钮(这里没有为所有按钮添加代码).我当然会在以后的更改中更改按钮的标题,但是现在我只专注于设计.

我正朝着正确的方向前进吗?有没有更好的办法?

Vik*_*ica 5

也许你会发现这些链接很有帮助

我不会将每个按钮连接到命名变量.

做这样的事情:

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

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

如果您正在遍历数组,则建议使用for-each而不是

for(int i = 0; i<[arrCalendarbutton count];i++)
Run Code Online (Sandbox Code Playgroud)

for(UIButton *b in arrCalendarbutton)
Run Code Online (Sandbox Code Playgroud)