0

ビューのサブビューを作成してサイズを小さくしようとしていますが、サブビューのサイズが変更されません。私は何かが欠けているのだろうか。View Controller の「viewDidLoad」コードは次のようになります。

[_testView setBackgroundColor:[UIColor greenColor]];

CGRect frame = self.testView.frame;
frame.size.height -= 500;
// self.testView.frame = frame;
[_testView addSubview:_testSubView];

[_testSubView setFrame:frame];

しかし、サブビューの高さには変化が見られません。理由はありますか?

4

2 に答える 2

0

サブビューに autoresizingMask をセットアップしましたか?

_testSubView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleBottomMargin;

親ビューにも autoresizedSubviews が設定されていることを確認してください。

_testView.autoresizesSubviews = YES;

autolayout も見ておくべきだと思います。

よろしく、

于 2013-08-24T17:15:33.360 に答える
0

「viewDidLoad」メソッドを使用している場合は、nib ファイルでこのビューを初期化していると想定しても安全です。ビューの最終的なサイズは「viewWillAppear」メソッドまで完全には決定されないため、このビューに何らかの制約がある場合、viewDidLoad メソッドの後にそれらをビューに適用することは実際には可能です。

簡単に言えば、フレームの変更を「viewWillAppear:animated:」メソッドに移動してみてください。

于 2013-07-04T00:17:08.770 に答える