1

ヘルプが必要なアプリに少し問題があります。Web を検索したところ、同様の問題がいくつか見つかりましたが、私自身の問題に完全に答えているわけではありません。

42 個のボタンを作成し、「カレンダー方式」で印刷したいと考えています。カレンダーとは思えませんが、見た目はそれを連想させます。このCreate a for loop to add 39 buttons to an arrayを試しました

しかし、私はそれをまさに私が望むものにする方法を理解できませんでした。

私もこれを試しました:

NSMutableArray *buttons = [NSMutableArray array];

for( int i = 0; i < 5; i++ ) {

    UIButton* aButton = [UIButton buttonWithType:UIButtonTypeCustom];
    aButton.backgroundColor = [UIColor redColor];
    aButton.frame = CGRectMake(10, (i+1)*60, 60, 40);
    [aButton setTag:i];
    [buttons addObject:aButton];
    [aButton addTarget:self action:@selector(buttonClicked:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:aButton];
}

そして、それは正しい方法ですが、私は自分が望む外観を得る方法を理解できません. ここに私が求めている外観がありますが、番号は 1 から 42 の範囲になります: http://nebulon.se/images/question_img.png

4

1 に答える 1

0

グリッドをレイアウトするには、ループ内にループが必要です。座標をインクリメントする外側のループと、y座標をインクリメントする内側のループx。したがって、進行するにつれて、ボタンの行の各列で作業してから、次の行に移動します。何かのようなもの:

for( int i = 0; i < 5; i++ ) {
    for( int j = 0; j < 5; j++ ) {

        UIButton* aButton = [UIButton buttonWithType:UIButtonTypeCustom];
        aButton.frame = CGRectMake(j * 60, i * 60, 60, 40);

    }
}
于 2013-08-23T11:22:58.697 に答える