0

ボタンを上下に追加したい。私はこの簡単なコードを持っています:

- (void)viewDidLoad
{
    [super viewDidLoad];

    for(int i=0 ; i<9 ; i++)
    {
        UIButton *myButton = [[UIButton alloc] init];
        myButton.frame = CGRectMake(self.view.frame.origin.x, self.view.frame.origin.y, self.view.frame.size.width, self.view.frame.size.height/10); //this "10" i want also dynamically
        myButton.backgroundColor = [UIColor blackColor];
        [self.view addSubview:myButton];
    }

}

もちろん、私はそれが次々と描かれることを知っています。しかし、高さを知らなくてもループでそれを行うことはできますか (高さはループ内のボタンの数に依存するため)。

私が達成したいこと:

ボタン

4

3 に答える 3

1

これを試して:

- (void)viewDidLoad
  {
    [super viewDidLoad];
    int number = 10;

     for(int i=0 ; i<9 ; i++)
    {
    UIButton *myButton = [[UIButton alloc] init];
    myButton.frame = CGRectMake(self.view.frame.origin.x, (self.view.frame.size.height/number)*i + number, self.view.frame.size.width, self.view.frame.size.height/number);
    myButton.backgroundColor = [UIColor blackColor];
    [self.view addSubview:myButton];
    }


}
于 2012-07-23T08:12:17.960 に答える
0

正しい表示のためにボタンのサイズを定義する必要がありますが、残念ながら、希望するボタンのサイズがなければ、表示したいサイズのボタンをシステムがどのように認識しているので、実現できません...?

- (void)viewDidLoad
{
    [super viewDidLoad];

    Float32 _spaceBetweenButtons = 8.f;
    Float32 _offsetY = 32.f;
    Float32 _buttonWidth = 300.f; // width fo button
    Float32 _buttonHeight = 32.f; // height of the button

    for (int i = 0 ; i < 9 ; i++) {
        UIButton *_myButton = [[UIButton alloc] initWithFrame:CGRectMake(0.f, 0.f, _buttonWidth, _buttonHeight)];
        [_myButton setBackgroundColor:[UIColor blackColor]];
        [_myButton setTitle:[NSString stringWithFormat:@"button #%d", i] forState:UIControlStateNormal]; // just add some text as title
        [self.view addSubview:_myButton];
        [_mybutton setCenter:CGPointMake(self.view.frame.size.width / 2.f, _offsetY + i * (myButton.frame.size.height + _spaceBetweenButtons))];
    }
}

ボタンのサイズを動的に計算し、ボタンの高さをビューの高さに合わせたい場合は、次の方法があります。

NSInteger _numberOfButtons = 20;
Float32 _spaceBetweenButtons = 8.f;
Float32 _calculatedHeight = (self.view.frame.size.height - (_numberOfButtons + 1 * _spaceBetweenButtons)) / _numberOfButtons;

方法は上記と同じですが、何百ものボタンの場合に適切な UI が得られるかどうかはわかりません。:)

于 2012-07-23T08:47:59.733 に答える
0

ひょっとしたらこれが効くかも?申し訳ありませんが、私は何年も使用self.view.frameしていませんが、一般的な考え方はわかります。

- (void)viewDidLoad
{
    [super viewDidLoad];
    int number;

    for(int i=0 ; i<9 ; i++)
    {
        UIButton *myButton = [[UIButton alloc] init];
        myButton.frame = CGRectMake(i * self.view.frame.origin.x / number,
                                    self.view.frame.origin.y,
                                    self.view.frame.size.width,
                                    self.view.frame.size.height / number); //this "10" i want also dynamically
        myButton.backgroundColor = [UIColor blackColor];
        [self.view addSubview:myButton];
    }
}
于 2012-07-23T08:03:33.433 に答える