フレームではなく制約を使用することを強くお勧めします。それはあなたが求めていることを正確に行い、はるかに簡単になります。あなたのコードは次のようになります
[self.superViewOfButton addSubview:self.button1];
[self.superViewOfButton addSubview:self.button2];
[self.superViewOfButton addSubview:self.button3];
NSDictionary *viewsDic = [NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:self.button1, self.button2, self.button3, nil]
forKeys:[NSArray arrayWithObjects:@"button1", @"button2", @"button3", nil]];
[self.superViewOfButton addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[button1]" options:0 metrics:0 views:viewsDic]];
[self.superViewOfButton addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-20-[button1]" options:0 metrics:0 views:viewsDic]];
[self.superViewOfButton addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:[button2]" options:0 metrics:0 views:viewsDic]];
[self.superViewOfButton addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-20-[button2]" options:0 metrics:0 views:viewsDic]];
Visual Syntax Language のリンクは次のとおりです:
http://developer.apple.com/library/mac/#documentation/UserExperience/Conceptual/AutolayoutPG/Articles/formatLanguage.html
すべてのコントロールを
button1.translatesAutoresizingMaskIntoConstraints = NO;
最初は少し多すぎるように見えるかもしれませんが、約 5 分間読むと、非常に単純になり、アプリケーションの柔軟性が大幅に向上します。お役に立てれば。