横竖屏的转换及页面适配

本文介绍了横竖屏转换的两种情况,包括APP全局支持横竖屏和个别页面支持。通过设置项目配置、代理方法以及目标-动作方式实现横竖屏切换。同时,讨论了横竖屏切换后的页面适配策略,确保用户体验。
摘要由CSDN通过智能技术生成

横竖屏的转换,既可以手动操作实现,也可以自动旋转设备实现。
情况1:APP项目所有页面既支持横屏,又支持竖屏。
在项目配置中设置了支持横竖屏,则不需要对视图等做过多的配置即可实现横竖屏。如图所示:
横竖屏配置
情况2:APP项目根据需要,个别页面需要既支持横屏,又支持竖屏。
在项目配置中设置了只支持竖屏。如图所示:
竖屏配置

实现逻辑

示例代码:
1、AppDelegate.h中定义是否允许旋转的变量

#import <UIKit/UIKit.h>

@interface AppDelegate : UIResponder <UIApplicationDelegate>

@property (strong, nonatomic) UIWindow *window;

/**
 * 是否允许转向
 */
@property (nonatomic, assign) BOOL allowRotation;

@end

2、AppDelegate.m中实现旋转的代理方法

- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(nullable UIWindow *)window
{
   
    if (self.allowRotation) {
   
        // 横竖屏
        return UIInterfaceOrientationMaskAllButUpsideDown;
    } else {
   
        // 竖屏
        return UIInterfaceOrientationMaskPortrait;
    }
}

3、在需要支持横竖屏旋转的页面实现相关方法
(1)进入视图控制器时,允许横竖屏

- (void)viewWillAppear:(BOOL)animated
{
   
    [super viewWillAppear:animated];
    
    // 允许横竖屏
    AppDelegate *appDelegate = (AppDelegate *)[UIApplication sharedApplication].delegate;
    appDelegate.allowRotation = YES;
}

(2)离开视图控制器时,恢复竖屏


                
随着智能手机的不断发展,越来越多的APP开始提供横屏竖屏模式,来满足不同用户的使用需求。在开发uniapp的时候,我们也需要考虑横屏竖屏适配问题。 一般来说,竖屏是APP的默认模式。但是对于一些需要横屏展示的场景,就需要考虑横屏适配。 首先,我们需要在manifest.json文件中设置横屏支持,并指定横屏下APP的方向。 ``` "app-plus": { "videoFullscreen":false, "orientation": "portrait", "fullScreen":true, "titleNView":true, "splashscreen": { "autoclose": true, "duration": 1000 }, "softinputMode": "resize", "whiteList":[ "tel", "sms", "mailto" ] } ``` 然后,在页面中我们需要根据横屏或者竖屏模式来动态设置样式和布局。 对于横屏模式,我们可以使用弹性布局来实现页面元素的根据页面方向自适应。比如: ``` <div class="container"> <div class="left"></div> <div class="content"></div> <div class="right"></div> </div> <style> .container { display: flex; flex-direction: row; } .content { flex: 1; } @media (orientation: landscape) { .container { flex-direction: column; } .left { height: 30%; } .right { height: 30%; } .content { height: 40%; } } </style> ``` 对于竖屏模式,我们可以设置最大宽度,并使用媒体查询来适应不同幕大小,比如: ``` <div class="container"></div> <style> .container { max-width: 600px; } @media (max-width: 400px) { .container { font-size: 14px; } } @media (min-width: 401px) and (max-width: 800px) { .container { font-size: 16px; } } @media (min-width: 801px) { .container { font-size: 18px; } } </style> ``` 除了上面的样式设置之外,还需要考虑一些交互逻辑问题,比如视频播放器等元素在横屏竖屏模式下的展示效果。 总结 在uniapp中,实现横屏竖屏适配主要是设置manifest.json文件中的orientation属性,并在页面中动态设置样式和布局。在实践中,需要考虑交互逻辑和不同幕大小的适配
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

番薯大佬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值