objective-c – UIView的高度在iPhone 5上是不对的

objective-c – UIView的高度在iPhone 5上是不对的,第1张

概述我正在使用UIPickerView迁移我的应用程序.在viewDidLoad方法中,我创建了选择器,并将其设置为self.view.frame.size.height,使其不在屏幕上.然后我需要时把它移动. 在iPhone 5上,self.view.frame.size.height仍然返回480,但UIView正确填满屏幕. 我甚至尝试使用CGRectGetHeight(self.view.bo 我正在使用UIPickerVIEw迁移我的应用程序.在vIEwDIDLoad方法中,我创建了选择器,并将其设置为self.vIEw.frame.size.height,使其不在屏幕上.然后我需要时把它移动.

在iPhone 5上,self.vIEw.frame.size.height仍然返回480,但UIVIEw正确填满屏幕.

我甚至尝试使用CGRectGetHeight(self.vIEw.bounds),认为它可能会返回不同的东西…没有骰子.任何想法,为什么这可能发生.

解决方法 这是因为您在视图的笔尖中选择的大小将被使用,直到vIEwWillAppear:(BOol)动画方法.那么它将取正确的大小.

但是,由于vIEwDIDLoad被调用,您可以使用以下代码来获取正确的大小:

CGSize vIEwSize = [[UIScreen mainScreen] bounds].size;vIEwSize = CGSizeMake(vIEwSize.wIDth,vIEwSize.height - STATUS_bar_HEIGHT);

STATUS_bar_HEIGHT是20,但这取决于您的应用程序.您可能需要或可能不需要添加该行.

编辑

使用mainScreen界限的问题是,框架在方向更改时不会改变.这是它的设计方式.您可以使用以下 *** 作:

CGSize vIEwSize = [[UIScreen mainScreen] bounds].size;    if(UIInterfaceOrIEntationIsLandscape(CURRENT_ORIENTATION)){        vIEwSize = CGSizeMake(vIEwSize.height,vIEwSize.wIDth - STATUS_bar_HEIGHT);    } else {        vIEwSize = CGSizeMake(vIEwSize.wIDth,vIEwSize.height - STATUS_bar_HEIGHT);    }

CURRENT_ORIENTATION是[[UIApplication sharedApplication] statusbarOrIEntation];

总结

以上是内存溢出为你收集整理的objective-c – UIView的高度在iPhone 5上是不对的全部内容,希望文章能够帮你解决objective-c – UIView的高度在iPhone 5上是不对的所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1062442.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-26
下一篇2022-05-26

发表评论

登录后才能评论

评论列表(0条)

    保存