0

イメージビュー、セグメント化されたコントロール、テキストビューを含むストーリーボードがあります。表示された後、デバイスの画面サイズに応じていくつかの調整を行います。

- (void) viewDidAppear:(BOOL)animated
{
    NSLog(@"didAp");
    CGSize mainFrameSize=_mainView.frame.size;

    [_imageSpace setFrame:CGRectMake(0, 0, mainFrameSize.width, mainFrameSize.height*4/5)];
    [_metadadataControl setFrame:CGRectMake(0, _imageSpace.frame.size.height, mainFrameSize.width, 30)];
    [_metadataTextView setFrame:CGRectMake(0, _imageSpace.frame.size.height+_metadadataControl.frame.size.height, mainFrameSize.width, mainFrameSize.height-(_imageSpace.frame.size.height+_metadadataControl.frame.size.height))];


}

アプリが起動すると、すべてが正常に表示されますが、セグメント化されたコントロールをクリックすると、いくつかのポイントがジャンプします。上記のメソッドは、コントロールをクリックする前に一度だけ呼び出され、他の setFrame メソッド呼び出しはありません。ストーリーボードを再度ロードするだけのようです。ご協力ありがとうございました

4

1 に答える 1

0

rdelmar は正しかった。フレーム設定と矛盾する制約の問題でした。その後、自動レイアウトと制約を使用してすべてを行うことに切り替えました。

于 2013-04-07T18:10:30.763 に答える