横屏模式(landscape)下的UIDatePicker

uni-app微信小程序单个页面横屏以及使用uni-datetime-picker、popup出现弹窗后还能滚动页面的问题 uni-app微信小程序单个页面横屏以及使用uni-datetime-picker、popup出现弹窗后还能滚动页面的问题。catchtouchmove以及pageOrientation属性 阅读详情

ios的UIDatePicker控件在默认情况下,通常在竖屏模式下会显示得很好,但是在横屏模式下就会出现错位得情况。


要解决该问题可以在对应得视图控制器中加入下面得代码:

- (void) viewDidLoad { 
    [super viewDidLoad]; 
    for (UIView * subview in datePicker.subviews) { 
        subview.frame = datePicker.bounds; 
    } 
}
然后在测试显示就不会错位了,如下:

比未作任何处理之前好多了,至少可以正常的显示了,实际上我们做的操作就是改变了datapicker的frame属性。

因此,我们可以完成一个可以旋转的UIDatePicker的子类来让UIDatePicker支持横屏和竖屏,代码如下:

RotatingDatePicker.h
#import <UIKit/UIKit.h> 
@interface RotatingDatePicker : UIDatePicker { 
} 
@end 
RotatingDatePicker.m
#import "RotatingDatePicker.h" 
 
@implementation RotatingDatePicker 
 
- (id)initWithFrame: (CGRect)frame { 
    if (self = [super initWithFrame:frame]) { 
        for (UIView * subview in self.subviews) { 
            subview.frame = self.bounds; 
        } 
    } 
    return self; 
} 
 
- (id) initWithCoder: (NSCoder *)aDecoder { 
    if (self = [super initWithCoder: aDecoder]) { 
        for (UIView * subview in self.subviews) { 
            subview.frame = self.bounds; 
        } 
    } 
    return self; 
} 
 
@end

现在,当要创建UIDatePicker或者使用ib来做界面事就都可以直接使用RotatingDatePicke来让UIDatePicker支持旋转。

还有一个问题就是UIDatePicker在横屏模式下并不会横向完全填充,但是我们可以通过代码手动将其修正。

- (void) arrangeViews: (UIInterfaceOrientation)orientation { 
    if (UIInterfaceOrientationIsPortrait(orientation)) { 
        datePicker.frame = CGRectMake(0, 0, 320, 216); 
    } 
    else { 
        datePicker.frame = CGRectMake(0, 0, 480, 162); 
    } 
} 
 
- (void) viewWillAppear:(BOOL)animated { 
    [super viewWillAppear: animated]; 
    [self arrangeViews: 
          [UIApplication sharedApplication].statusBarOrientation]; 
} 
 
- (void) willAnimateRotationToInterfaceOrientation: 
                          (UIInterfaceOrientation)interfaceOrientation 
         duration: (NSTimeInterval)duration { 
    [super willAnimateRotationToInterfaceOrientation: interfaceOrientation 
                                            duration: duration]; 
    [self arrangeViews: interfaceOrientation]; 
}

通过上面的代码,使得在旋转时根据UIInterfaceOrientation方向

重新设置frame属性,使得在横屏模式下只显示三行信息,如下下图所示:


参考连接:http://www.llamagraphics.com/developer/using-uidatepicker-landscape-mode
DC综合新手避坑指南:从`search_path`设置到`link_library`星号的正确姿势 本文为DC综合新手提供详细的避坑指南,重点解析`search_path`、`target_library`和`link_library`的配置技巧,特别是`*`号在`link_library`中的关键作用。通过生活化比喻和实战案例,帮助工程师快速掌握库文件配置的正确方法,避免常见的'无法解析引用'错误。 阅读详情

相关推荐

[修正]IOS中使用SoundTouch库实现变声

之前写过一片文章“IOS中使用SoundTouch库实现变声”。 最后有很多朋友在博客上说发出来的代码在模拟器上运行可以,不能在真机上运行,前段时间一直也很忙,没时间翻代码出来查看,望谅解。 今天抽空检查了一下问题的根源,并且在IPhone 4(ios5.0.1)上测试通过,下面更新一些代码。 同样是Apple官方的SpeakHere,要下载代码的,请查看上一篇文章。 void AQRec

Yarin's Blog™ 1万+

Landscape UI on Portait LCM (竖屏横用/直屏横用)使用

1. 直屏比橫屏便宜許多  2. Qwerty keypad phone(全键盘手机),客戶普遍用”直屏橫放“的方式來实现, 但得自己承受 performance 和tearing(斜切屏) 問題. 因为使用LCM做90度Rotate,则必然出现斜切屏。 3. MTK 提供tearing-free(斜切屏解决方法) 以及 good performance。无需LCM做90度 Rotate,由M

曹浩洋的专栏 2292

LDR: LdrpWalkImportDescriptor()解决方案

今天编译一开源项目,他提供的是VC9的工程,我这边是VC10,首先,打开之后需要经过转换,一切正常,然后编译,出现一个简单的小的错误,更改之后编译通过,但是运行时出现下图所示的错误。 “应用程序正常初始化(oxc0150002)”失败,请单击“确定”,终止应用程

Yarin's Blog™ 6106

[iOS] 解决:你很郁闷UIDatePicker为什么显示不出来

有时明明创建了UIDatePicker也设置了位置和大小,但是就是显示不出来,就是看不到UIDatePicker ?请记住一定要设置UIDatePicker的locale属性!!!比如:datePicker.locale = [NSLocale currentLocale];...

H_O_W_E的专栏 2612

在ios中使用soundtouch库实现变声

这篇文章是项目总结了。 做了段时间的项目,过程中也遇到了很多麻烦,但是好在终于都解决了,这里是这里是项目之后凭着记忆总结出来,大家有遇到同样的问题,希望能参考了,但是我记忆可能不太好了,要是实践中有什么问题可以直接给我留言,或者到weibo.com/yarin上找我了。

Yarin's Blog™ 4185

手把手教你用Excel自动化处理G14大额风险暴露报表(含211版模板)

本文针对G14大额风险暴露报表(含211版)手工填报效率低、易出错的核心痛点,提供了一套基于Excel VBA的完整自动化解决方案。文章详细讲解了如何构建从数据采集、清洗、关联客户识别、风险暴露计算到自动化校验与归档的完整工作流,并附有可操作的代码示例,旨在帮助银行风控人员大幅提升报表处理效率与准确性。

weixin_29304985的博客 447

Audio File Convert(afconvert)工具转换音频格式

在做游戏音效的时候,通常会使用.wav格式的音频文件,但是Apple通常推荐我们使用.CAF格式的,同时也提供了afconvert工具可以方便我们对音频文件进行转换。 首先可以输入如下命令来查看支持哪些格式的音频。 afconvert -hf 或者 afconvert -

Yarin's Blog™ 3339

Unity游戏开发客户端面经——设计模式(初级)

Unity游戏开发客户端面经 之 设计模式 篇

Sea3752的博客 9429

在cocos2d-x中编译/调试curl库

在cocos2d-x中编译/调试curl库 环境参数 系统:mac os x10.6 xocde:4.0.2 ios sdk:4.3 curl:curl-7.22.0 不知道curl是做什么的,就自己google了,这里暂时不纠结这个问题。 因一个cocos2d-x项目需要使用curl库,但是curl官方并没有直接支持ios,所以需要自己编译,另外,为了方便调试,所以

Yarin's Blog™ 3198

借助生成式 AI 加快创作速度,通过快速构建 Omniverse 扩展程序,您可以直接在 USD Composer 中连接首选的生成式 AI 智能体并与之交互。或者,您也可以使用由 LLM 提供支持的

通过快速构建 Omniverse 扩展程序,您可以直接在 USD Composer 中连接首选的生成式 AI 智能体并与之交互。或者,您也可以使用由 LLM 提供支持的 OpenUSD 开发方法,为您的工作流程提供强劲助力。

pvmsmfchcs的博客 683

深入理解 HTTP 协议中的 Content-Type

是 HTTP 协议中的一个头部字段(Header),用于指示请求或响应中实体主体(body)的媒体类型(Media Type),也称为MIME 类型(Multipurpose Internet Mail Extensions)。

h a 6 6 6 c k 为 你解决复杂难题! 997

《Android应用开发揭秘》连载1

《Android应用开发揭秘》   书名:Android应用开发揭秘作者:杨丰盛出版社:机械工业出版社ISBN:9787111291954出版日期:2010 年3月(1版2次)开本:16页码:515版次:1-2定价:69元豆瓣网讨论地址:http://www.douban.com/subject/4200822/China-pub预订地址:http://www.china-pu

Yarin's Blog™ 3041

告别繁琐!VS Code 下OpenClaw零配置上手秘籍

本文介绍了在VSCode环境下零配置上手OpenClaw开发工具的最佳实践。首先详细说明了VSCode和OpenClaw插件的安装步骤,包括获取安装包、配置环境变量等准备工作。然后重点讲解了核心配置流程:设置OpenClaw路径、调整工作区参数、添加自定义代码片段等优化开发体验的方法。通过创建测试项目验证配置有效性,并针对常见的路径错误、运行报错等问题提供了排查方案。本文旨在帮助开发者快速搭建高效的OpenClaw开发环境,充分发挥VSCode与OpenClaw的组合优势,提升开发效率。无论是新手还是资深开

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 528

Xcode调试断点不停止解决方案!

很多人在使用xcode调试时,到断点处却不能停止,好像断点无效一样。 如果是黑苹果,那么可能是内核的原因,暂时没有解决方案。 如果非黑苹果,则按如下方式操作即可: 方案一:打开xcode的偏好设置,选择debugging选项,取消“load symbols la

Yarin's Blog™ 3036

【异常】安装OpenClaw遇到 Windows环境pnpm安装node-llama-cpp postinstall生命周期脚本执行失败完整解决方案

摘要: Windows环境下使用pnpm安装node-llama-cpp时,postinstall脚本执行失败(错误码3221225477),主要因缺少C++编译工具链或预构建二进制下载失败。解决方案: 基础排查:确保管理员权限、Node.js ≥18、路径无中文; 安装编译工具:推荐Visual Studio的“C++桌面开发”组件或windows-build-tools; 环境变量配置:强制CPU模式+国内镜像(NODE_LLAMA_CPP_FORCE_CPU=true,镜像地址替换为国内源); pnp

奶爸的编程之路,也就一周冷个三天 618

Windows11上pip安装IsaacSim5.1.0与IsaacLab

本文详细介绍了CUDA Toolkit 12.8.0、IsaacSim和IsaacLab的安装过程。首先从NVIDIA官网下载并安装CUDA Toolkit 12.8.0,然后通过miniforge创建conda环境(env_isaacsim)安装IsaacSim相关Python包,解决了Windows长路径问题。成功运行IsaacSim后,克隆IsaacLab仓库并完成安装验证,最后通过创建空场景测试环境配置。整个安装过程包含详细的命令行操作和问题解决方法,为机器人仿真开发环境搭建提供了完整指导。

拥抱具身智能,昇腾Ascend C 377

《Android应用开发揭秘》连载2

《Android应用开发揭秘》   书名:Android应用开发揭秘作者:杨丰盛出版社:机械工业出版社ISBN:9787111291954出版日期:2010 年3月(1版2次)开本:16页码:515版次:1-2定价:69元豆瓣网讨论地址:http://www.douban.com/subject/4200822/China-pub预订地址:http://www.china-pub.

Yarin's Blog™ 2984

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

《Android应用开发揭秘》连载3

《Android应用开发揭秘》   书名:Android应用开发揭秘作者:杨丰盛出版社:机械工业出版社ISBN:9787111291954出版日期:2010 年3月(1版2次)开本:16页码:515版次:1-2定价:69元豆瓣网讨论地址:http://www.douban.com/subject/4200822/China-pub预订地址:http://www.china-pub.

Yarin's Blog™ 2870

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

《Android应用开发揭秘》一月内重印

我的小作——《Android应用开发揭秘》有幸在一月内重印,还要感谢大家的支持!   书名:Android应用开发揭秘作者:杨丰盛出版社:机械工业出版社ISBN:9787111291954丛书名:揭秘系列丛书 出版日期:2010 年3月开本:16页码:515版次:1-2定价:69元豆瓣网讨论地址:http://www.douban.com/subject/4200822/China

Yarin's Blog™ 2013

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Android应用开发新路线(用HTML5开发Android应用)

昨天参加了“第五期HTML5技术分享沙龙——成都站”,我的分享内容为“Android应用开发新路线(用HTML5开发Android应用)”。 首先感谢成都优聚的李万鹏(@GoodTeamStudio)和@HTML5研究小组 的田爱娜提供的各种帮助与支持! 这里上传一下

Yarin's Blog™ 1821

如何使用联想O1来调试OPhone应用?

我们都知道在开发Android时我们可以使用真机来进行调试应用(方法很多,网上到处都是)。 当然也有部分功能必须要在真机上测试,比如:蓝牙、WIFI等。 在网上看到很多人在问如何在真机上测试OPhone应用的问题和测试所需要的usb驱动。? 本文附件提供了windows x

Yarin's Blog™ 1786
上一篇: Iphone开发Interface Builder出现Assertion Failure错误
下一篇: Android应用开发新路线(用HTML5开发Android应用)
yarin
博客等级 码龄17年 35粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值