1

以前にこれに遭遇したことは確かですが、何が原因だったのか思い出せません。ストーリーボードを使用して UIImageView (bar_001) を配置しましたが、viewController 内からプログラムでその位置を変更したいと考えています。私の問題は、viewDidLoad からアクセスすると、UIImageViews のサイズと原点がすべてゼロに設定されることです。何が欠けていますか?

#import "ViewController.h"

@interface ViewController ()
@property(nonatomic, weak) IBOutlet UIImageView *bar_001;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    [self animateBars_V1];
}

- (void)animateBars_V1 {
    CGRect barRect = [[self bar_001] frame];
    NSLog(@"HEIGHT: %f", barRect.size.height);
    NSLog(@"WIDTH : %f", barRect.size.width);
}

@end

コンソール:

2012-12-11 12:53:27.777 TESTBED[4279:907] HEIGHT: 0.000000
2012-12-11 12:53:27.785 TESTBED[4279:907] WIDTH : 0.000000

絵コンテ:

ここに画像の説明を入力

4

1 に答える 1

4

私も時々同様の問題を見てきました。viewDidLoad の代わりに、viewDidAppear で animateBars_V1() メソッドを呼び出してみます。viewDidLoad が呼び出されるまでに、ビューはメモリにロードされますが、描画されていない可能性があります。このように動作する明確な理由を示す前に、何かを調べる必要があります。

于 2012-12-11T13:18:13.153 に答える