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

我有时也看到类似的问题。我会尝试在 viewDidAppear 而不是 viewDidLoad 中调用 animateBars_V1() 方法。到时,viewDidLoad 被调用,视图已加载到内存中但可能尚未绘制。我必须先查找一些东西,然后才能给出一个明确的原因来解释它为什么会这样。

于 2012-12-11T13:18:13.153 回答