美文网首页问题适配
iphone横竖屏的适配

iphone横竖屏的适配

作者: 三岁就很乖 | 来源:发表于2016-02-17 10:51 被阅读155次

我的项目中个别的界面需要旋转屏幕,有的是不需要旋转的

解决如下:就是把系统类子类化,再使用子类

1.设置app级别的支持屏幕的方向

targets -> General -> Deployment Info

2.所有界面都有一个统一的BaseViewController,在这里实现ViewController级别的设置屏幕方向

3.在tabbarController中设置屏幕方向

4.在NavigationController中设置屏幕方向

5.在要旋转的页面设置屏幕旋转如下:

要旋转的view是通过这样展示

[self presentViewController:perview animated:NO completion:nil];

我这里应该是最笨的方法,屏幕旋转重新添加subviews,有待优化

在开发中遇到的需要注意的问题

1、UIAlertViewcontroller

iOS 8 UIActionSheet ignores view controller supportedInterfaceOrientations and shouldAutorotate

我做了一个·类扩展

```

-(void)viewWillAppear:(BOOL)animated

{

if([[UIDevicecurrentDevice]respondsToSelector:@selector(setOrientation:)]) {

[[UIDevicecurrentDevice]performSelector:@selector(setOrientation:)withObject:UIPrintInfoOrientationPortrait];

}

}

```

还看了一些stackoverflow中的问答

http://stackoverflow.com/questions/25819132/ios-8-uiactionsheet-ignores-view-controller-supportedinterfaceorientations-and-s

-(UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window

{

UIViewController *presentedViewController = window.rootViewController.presentedViewController;

if (presentedViewController) {

if ([presentedViewController isKindOfClass:[UIActivityViewController class]] || [presentedViewController isKindOfClass:[UIAlertController class]]) {

return UIInterfaceOrientationMaskPortrait;

}

}

return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight;(这是view controller级别的屏幕方向)

}

2、

deprecated表示已不被建议使用,可能随时取消它;建议采用新的来替代

3、相关链接:

http://blog.csdn.net/totogogo/article/details/8002173

#if 0

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

{

// Return YES for supported orientations.

return YES;

}

#endif

#if 1

- (BOOL)shouldAutorotate

{

return YES;

}

- (NSUInteger)supportedInterfaceOrientations

{

return UIInterfaceOrientationMaskAllButUpsideDown;

}

#endif

http://mobile.51cto.com/iphone-407786.htm

http://www.jianshu.com/p/73be6d0e152f

http://blog.csdn.net/yuanxiubin/article/details/8752990

BaseTabBarController  BaseNavigationController

我都是先把系统类子类化 然后使用子类

我所有的页面都有一个统一的 BaseViewController 、

这里面实现了 #pragma mark 旋转

-(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation

{

return UIInterfaceOrientationPortrait;

}

-(UIInterfaceOrientationMask)supportedInterfaceOrientations

{

return UIInterfaceOrientationMaskPortrait;

}

-(BOOL)shouldAutorotate

{

return NO;

}

然后在要旋转的页面 加入下面代码

- (BOOL)shouldAutorotate

{

return NO;

}

-(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation

{

return UIInterfaceOrientationLandscapeRight;

}

-(UIInterfaceOrientationMask)supportedInterfaceOrientations

{

return UIInterfaceOrientationMaskLandscapeRight;

}

相关文章

  • 关于iOS横竖屏适配

    关于iOS横竖屏适配 关于iOS横竖屏适配

  • iphone横竖屏的适配

    我的项目中个别的界面需要旋转屏幕,有的是不需要旋转的 解决如下:就是把系统类子类化,再使用子类 1.设置app级别...

  • iPhone X适配小结

    对于iPhone应用,横竖屏都要考虑iPhone X屏幕的特点。最简单的适配就是不使用系统的导航栏,然后: 1. ...

  • iOS开发横竖屏

    关于iOS横竖屏适配 - 简书 iOS横竖屏旋转及其基本适配方法 - 梧雨北辰的博客 - CSDN博客 适配主要需...

  • Autolayout简记

    iPhone4之前 没有适配,不用适配 经常会出现坐标值写死的代码 iPad出现以后 需要横竖屏适配 出现了一种方...

  • 技术文章汇总

    横竖屏适配 字体大小适配 Cell 高度自适应

  • 4.App方面(启动页,App图片,横竖屏适配)

    1.苹果横竖屏适配方面 1.苹果横竖屏适配吊(基本所有都包括) 2.适配苹果手机多种尺寸 3.直播里的问题(...

  • 基本方法笔记 - 收藏集 - 掘金

    探讨判断横竖屏的最佳实现 - 前端 - 掘金在移动端,判断横竖屏的场景并不少见,比如根据横竖屏以不同的样式来适配,...

  • 横竖屏

    关于iOS横竖屏适配[https://www.jianshu.com/p/1993144ea35e]IOS横竖屏以...

  • ZXPAuaoLayout框架的使用

    一行搞定自动布局&适配iPhone,ipad,横竖屏.和label自适应 iOS的自动布局神器,只需要一行代码就搞...

网友评论

    本文标题:iphone横竖屏的适配

    本文链接:https://www.haomeiwen.com/subject/fsspcttx.html