简体   繁体   English

使用自动布局读取UI正确的框架

[英]read UI correct frame with Autolayout

I have a UIViewController with UIScrollView inside. 我有一个带有UIScrollViewUIViewController The scroll view automatically adjust its frame according with device screen. 滚动视图会根据设备屏幕自动调整其框架。 My problem is that in the code I can't read the correct frame of scroll view. 我的问题是在代码中我无法读取滚动视图的正确框架。 self.scrollView.frame always return {{0, 0}, {600, 600}} that's the default size of view controller in Interface Builder xib. self.scrollView.frame始终返回{{0, 0}, {600, 600}} self.scrollView.frame {{0, 0}, {600, 600}} ,这是Interface Builder xib中视图控制器的默认大小。

I have tried in viewDidLoad and in loadView methods but the frame is still {{0, 0}, {600, 600}} . 我已经在viewDidLoadloadView方法中尝试过,但是帧仍然是{{0, 0}, {600, 600}}

- (void)viewDidLoad {

    [super viewDidLoad];

    self.scrollView.pagingEnabled = YES;
    self.scrollView.delegate = self;

    NSLog(@"%@",NSStringFromCGRect(self.scrollView.frame));
}

Ideas ? 想法?

您可以在viewController的-(void)viewDidLayoutSubviews方法中获得正确的帧

when ever you need correct frame after apply layout constraints 应用布局约束后何时需要正确的框架
write below two lines 写在下面两行

[self.view setNeedsLayout];
[self.view layoutIfNeeded]; 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM