0

ストーリーボードのユーザーインターフェイスに、とを追加UIImageViewsしましUIScrollViewsた。次のように、ViewdidLoadでこれらのサイズと位置を設定します。

- (void)viewDidLoad
{
    [facebookSharing setFrame:CGRectMake(400, facebookSharing.frame.origin.y, facebookSharing.frame.size.width, facebookSharing.frame.size.height)];
    [bumpImage setFrame:CGRectMake(500, bumpImage.frame.origin.y, bumpImage.frame.size.width, bumpImage.frame.size.height)];
}

問題は、このコードが適用されていないことです。まったく同じコードのボタンがあり、それを押すと正常に機能します。ですから、でコードが実行されない可能性はありViewDidLoadますか?(NSLog()証明ViewDidLoadが実際に実行されていることを証明したとしても)?

さらに、私はこのコードをiPadViewDidLoad専用に持っており、コードはそこで機能します。UIViewControllerどのコントローラーでも、iPadでは機能しますが、iPhoneでは機能しません。どうしてこれなの?ありがとうございました。

4

3 に答える 3

0

他の回答ですでに述べたように、viewDidLoadこの種のタスクには早すぎます。 viewDidAppearただし、レイアウトの変更は最終的なアニメーションでは考慮されていないため、一般的にレイアウトの変更には遅すぎる可能性があります。

私はレイアウト作業を行うのが好きですviewDidLayoutSubviews(ビュー自体がautoSize / autoLayout / layoutSubviews / ..を介してサブビューレイアウトをまだ処理していない場合)

これは役立つかもしれません:http: //developer.apple.com/library/ios/#featuredarticles/ViewControllerPGforiPhoneOS/AdoptingaFull-ScreenLayout/AdoptingaFull-ScreenLayout.html#//apple_ref/doc/uid/TP40007457-CH13-SW2

于 2013-02-18T13:10:50.307 に答える
0

フレームと境界は、viewDidAppearが呼び出されるまで設定されません。このコードをに移動してみてくださいviewDidAppear

于 2013-02-18T11:55:08.263 に答える
-1

提供IBOutletsした後、プロパティを合成する必要があります。したがって、使用する必要があります

 - (void)viewDidLoad
   {
     [self.facebookSharing setFrame:CGRectMake(400, facebookSharing.frame.origin.y, facebookSharing.frame.size.width, facebookSharing.frame.size.height)];
     [self.bumpImage setFrame:CGRectMake(500, bumpImage.frame.origin.y, bumpImage.frame.size.width, bumpImage.frame.size.height)];
   }
于 2013-02-18T12:04:13.250 に答える