0

4つのボタンで行を作成したいのですが、ループは本来の動作を実行しており、ifステートメントを4回しか入力しませんが、ビューがポップアウトすると、ボタンが1つしか表示されません。

何故ですか?私は何か間違ったことをしていますか?

btnFrame = 18;
for (int i = 0; i < [arrImages count]; i++)
{
    if (btnFrame <= 237)
    {
        NSLog(@"%i",btnFrame);
        UIButton * tempBtn = [UIButton buttonWithType:UIButtonTypeCustom];
        tempBtn.frame = CGRectMake(btnFrame, 20, 65, 65);
        [tempBtn setTitle:[NSString stringWithFormat:@"Button%i",i] forState:UIControlStateNormal];
        [self.view addSubview:tempBtn];
        btnFrame = btnFrame + 73;
    }
}

どうもありがとう!

4

1 に答える 1

1

その時点でviewWillDisappearが表示されると、このビューがクリアされると思います。次のようにします。上記のコードを貼り付けるだけのメソッドを作成し、そのときにyourViewControllerが表示されたら、メソッドを呼び出します。

-(void)viewWillAppear:(BOOL)animated
{
   [self SetButton];    
}

-(void)setButton{

btnFrame = 18;
    for (int i = 0; i < [arrImages count]; i++)
    {
        if (btnFrame <= 237)
        {
            NSLog(@"%i",btnFrame);
            UIButton * tempBtn = [UIButton buttonWithType:UIButtonTypeCustom];
            tempBtn.frame = CGRectMake(btnFrame, 20, 65, 65);
            [tempBtn setTitle:[NSString stringWithFormat:@"Button%i",i] forState:UIControlStateNormal];
            [self.view addSubview:tempBtn];
            btnFrame = btnFrame + 73;
        }
    }
}

これがお役に立てば幸いです....:)

于 2012-05-14T15:25:42.600 に答える