我必须在我的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 :(得分:5)
也许你会发现这些链接很有用
我不会将每个按钮连接到命名变量。
这样做:
NSMuteableArray *array = [[NSMUteableArray alloc] init];
for(int i=0; i<31; i++){
UIButton *b = ....;
//customize b
[array addObject:b];
[b release];
}
如果要迭代一个数组,建议使用for-each 而不是
for(int i = 0; i<[arrCalendarbutton count];i++)
做
for(UIButton *b in arrCalendarbutton)
答案 1 :(得分:1)
同样的问题也有this answer。