0

使用带有自动布局的 Storyboard,我注意到了一些事情:我添加了一个 UIScrollView 并将它与一个 IBOutlet 连接起来。在我的 UIViewController 中,如果我创建日志:

NSLog(@"size %f",self.myScrollView.frame.size.width);

结果为 0,但在视觉上测量结果是正确的。

如果我关闭自动布局,则日志参数是正确的,并且视觉上一切都保持不变。

如何使用自动布局查看正确的值?

谢谢

4

1 回答 1

0

显然,您可以通过询问它们来查看正确的大小值 in viewDidAppear,因为 inviewDidLoad并且viewWillAppear它们仍未使用自动布局确定:

-(void)viewDidAppear:(BOOL)animated{
  [super viewDidAppear:animated];
  NSLog(@"size %f",self.myScrollView.frame.size.width);
}

如图所示:

-(void)viewDidLoad {
    [super viewDidLoad];
    NSLog(@"%s size %f",__PRETTY_FUNCTION__,_holderView.frame.size.width);
}

-(void)viewWillAppear:(BOOL)animated{
  [super viewWillAppear:animated];
   NSLog(@"%s size %f",__PRETTY_FUNCTION__,_holderView.frame.size.width);
}

-(void)viewDidAppear:(BOOL)animated{
  [super viewDidAppear:animated];
   NSLog(@"%s size %f",__PRETTY_FUNCTION__,_holderView.frame.size.width);
}

2013-04-17 12:02:05.442 TryALASB[5421:c07]-[FirstViewController viewDidLoad]大小 0.000000 2013-04-17 12:02:05.444 TryALASB[5421:c07]-[FirstViewController viewWillAppear:]大小 0.000000 2013-04 -17 12:02:05.457 TryALASB[5421:c07] -[FirstViewController viewDidAppear:] 大小 150.000000

于 2013-04-17T10:06:58.537 回答