for*_*yez 81 iphone cocoa-touch objective-c ipad
嗨,我想知道是否有办法以编程方式获得宽度.
我正在寻找足以容纳iphone 3gs,iphone 4,ipad的东西.此外,宽度应根据设备是纵向还是横向(对于ipad)而改变.
谁知道怎么做?我一直在寻找...谢谢!
Ala*_*ers 201
看看UIScreen.
例如.
CGFloat width = [UIScreen mainScreen].bounds.size.width;
Run Code Online (Sandbox Code Playgroud)
如果您不想包含状态栏(不会影响宽度),请查看applicationFrame属性.
更新:事实证明,UIScreen(-bounds或-applicationFrame)没有考虑当前的界面方向.更正确的方法是询问你的UIView的界限 - 假设这个UIView已被它的View控制器自动旋转.
- (void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation
{
CGFloat width = CGRectGetWidth(self.view.bounds);
}
Run Code Online (Sandbox Code Playgroud)
如果视图未由视图控制器自动旋转,则需要检查界面方向以确定视图边界的哪个部分表示"宽度"和"高度".请注意,frame属性将为您提供UIWindow坐标空间中视图的矩形(默认情况下)将不考虑界面方向.
小智 11
CGRect screen = [[UIScreen mainScreen] bounds];
CGFloat width = CGRectGetWidth(screen);
//Bonus height.
CGFloat height = CGRectGetHeight(screen);
Run Code Online (Sandbox Code Playgroud)
这可以在3行代码中完成:
// grab the window frame and adjust it for orientation
UIView *rootView = [[[UIApplication sharedApplication] keyWindow]
rootViewController].view;
CGRect originalFrame = [[UIScreen mainScreen] bounds];
CGRect adjustedFrame = [rootView convertRect:originalFrame fromView:nil];
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
128574 次 |
最近记录: |