0

UIButtonの同様の未解決の質問 バウンドとフレームがあります

自動レイアウトと「ページベースのアプリケーションテンプレート」でストーリーボードを使用しています

この問題は、標準のページ ベースのアプリケーションでボタンをストーリーボードに追加し、それを参照することで再現できます。

DataViewController.m のviewDidAppear

- (void)viewDidAppear:(BOOL)animated
{
    NSLog(@"View did appear");
    NSLog(@"self.myButton.bounds = %@",NSStringFromCGRect(self.myButton.bounds));
    NSLog(@"self.myButton.frame = %@",NSStringFromCGRect(self.myButton.frame));
    NSLog(@"self.myButton = %@",self.myButton);
}

出力
2013-05-14 19:37:45.954 FrameTest4[10777:c07] ビューが表示されました 2013-05-14 19:37:45.966 FrameTest4[10777:c07] self.myButton.bounds = {{0, 0}, { 0, 0}} 2013-05-14 19:37:45.968 FrameTest4[10777:c07] self.myButton.frame = {{0, 0}, {0, 0}} 2013-05-14 19:37:45.970 FrameTest4[10777:c07] self.myButton = >

ヘッダファイル

#import <UIKit/UIKit.h>    
@interface DataViewController : UIViewController
@property (strong, nonatomic) IBOutlet UILabel *dataLabel;
@property (strong, nonatomic) id dataObject;
@property (weak, nonatomic) IBOutlet UIButton *myButton;

自動レイアウトとストーリーボードを使用して単一ビュー アプリケーションで同じコードを実行すると、正常に動作します。

この情報が必要な理由は、ボタンで終了するアニメーションを実行する必要があるためです。ありがとうライアン

4

1 に答える 1

1

私は通常、新しい iOS 5 メソッドでこのようなことを行いviewDidLayoutSubviewsます。

ただし、このメソッドは複数回呼び出される可能性があるため、これを追跡するためにフラグを保持する必要がある場合があることに注意してください。

于 2013-05-15T06:09:41.700 に答える