我们知道view.frame 是在当前view在父容器坐标空间中的。我在ipad的一个ViewController中只放一个view,View里面只放了个webView(界面Landscape),本想达到webview的contentSize,所以我在代码中添加:
但是输出确为:
self.view.frame is {{0, 20}, {768, 1004}}
self.webView.frame is {{0, 0}, {768, 1004}}
webView.scrollView.contentSize is {1024, 1004}
webView.scrollView.frame.size is {100, 100}
完全不和逻辑。
原来我把上面代码放在了viewDidLoad中了,系统价值玩nib或StoryBoard中的视图后就立即调用viewDidLoad了,这时系统根本还没加载进去里面的内容,方向什么的也都还不知道。
当我把代码放在加载之后的地方之后,正确的应该是:
self.view.frame is {{20, 0}, {748, 1024}}
self.webView.frame is {{0, 0}, {1024, 748}}
webView.scrollView.contentSize is {5944, 748}
webView.scrollView.frame.size is {1024, 748}
另外注意,UIWindow的坐标体统一直都是竖立的。
check more:http://stackoverflow.com/questions/9539676/uiviewcontroller-returns-invalid-frame
本文转自老Zhan博客园博客,原文链接:http://www.cnblogs.com/mybkn/archive/2012/11/30/2796175.html,如需转载请自行联系原作者