代码之家  ›  专栏  ›  技术社区  ›  pankaj

需要创建日历的指导吗

  •  0
  • pankaj  · 技术社区  · 14 年前

    我必须在iPhone应用程序中使用日历。我努力了,但是在iphonesdk中找不到任何内置的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]];
    }
    

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

    我走的方向对吗?有更好的办法吗?

    2 回复  |  直到 12 年前
        1
  •  5
  •   vikingosegundo    14 年前

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

    我不会把每个按钮都连接到一个命名变量。

    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)