iOS 14 UIDatePicker适配问题,使用老的选择器样式
iOS 14 UIDatePicker 在 13.4 新增了2个属性如下
@property (nonatomic, readwrite, assign) UIDatePickerStyle preferredDatePickerStyle API_AVAILABLE(ios(13.4)) API_UNAVAILABLE(tvos, watchos);
@property (nonatomic, readonly, assign) UIDatePickerStyle datePickerStyle API_AVAILABLE(ios(13.4)) API_UNAVAILABLE(tvos, watchos);
- typedef NS_ENUM(NSInteger, UIDatePickerStyle) { /// Automatically pick the best style available for the current platform & mode.
- UIDatePickerStyleAutomatic, /// Use the wheels (UIPickerView) style. Editing occurs inline.
- UIDatePickerStyleWheels, /// Use a compact style for the date picker. Editing occurs in an overlay.
- UIDatePickerStyleCompact, /// Use a style for the date picker that allows editing in place.
- UIDatePickerStyleInline API_AVAILABLE(ios(14.0)) API_UNAVAILABLE(tvos, watchos), }
- API_AVAILABLE(ios(13.4)) API_UNAVAILABLE(tvos, watchos);
原来的界面选择器样式就变成新的样式,默认会设置成UIDatePickerStyleAutomatic,可以看一下注释Use the wheels (UIPickerView) style. Editing occurs inline.


显示的时候是上面的,选择日期的时候成日历控件了
那怎么才能变成原来的样式呢?
直接上代码
if (@available(iOS 13.4, *))
{ _datePicker.locale = [[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"];//新发现这里不会根据系统的语言变了
_datePicker.preferredDatePickerStyle = UIDatePickerStyleWheels; }
else
{ // Fallback on earlier versions }
根据项目中的界面样式,发现了2个问题,
1.UIDatePicker 设置背景色没有用了,是透明的。
2.语言不会根据系统语言变化了,要自己设置为中文。

我们会发现确实是之前的滚动齿轮样式了,但是位置不是屏幕宽度了,这里我们需要在样式后面重新设置一下UIDatePicker的frame
//之前在这里设置frame是没问题的,但是iOS13.4之后就没效果了
self.datePicker = [[UIDatePicker alloc]initWithFrame:CGRectMake(0,40, KscreenWidth, 230)];
//设置日期选择器的样式
if (@available(iOS 13.4, *))
{
self.datePicker.preferredDatePickerStyle=UIDatePickerStyleWheels;
} else {
// Fallback on earlier versions
}
//注意日期选择器的frame需要在设置样式后重新设置,在上面设置frame是没效果的
[self.datePicker setFrame:CGRectMake(0,40, KscreenWidth, 230)];
效果如下

iOS 14 UIDatePicker适配问题,使用老的选择器样式的更多相关文章
- 关于IOS的屏幕适配(iPhone)——资源适配
IOS的屏幕适配几乎不需要大量的代码操作,更多的时间我们只是动动鼠标选择一下就搞定.可以苹果在这方面做的还是比较人性的,解放了开发者. 首先来说说Iphone这几种屏(由于最近做的是iPhone AP ...
- iOS 6 & iOS 7 的适配笔记
iOS 6 & iOS 7 的适配 场景1: 没有NavigationController,同时根视图是UIView- (void)viewWillLayoutSubviews{ if ([[ ...
- iOS 14 egret 游戏卡顿问题分析和部分解决办法
现象 总体而言,iOS 14 渲染性能变差,可以从以下三个测试看出. 测试1:简单demo,使用egret引擎显示3000个图(都是同一个100*100 png 纹理),逐帧做旋转.(博客园视频播放可 ...
- iOS 14 YYAnimatedImageView加载图片失败处理
1.问题出在YYAnimatedImageView源码一个方法中 - (void)displayLayer:(CALayer *)layer { if (_curFrame) { layer.cont ...
- iOS 14.5 有啥新功能?Apple Watch 也能解锁 iPhone 了
转: iOS 14.5 有啥新功能?Apple Watch 也能解锁 iPhone 了 苹果今天发布了即将发布的 iOS 14.5 和 iPadOS 14.5 更新的第一个 Beta 版本,我们在其中 ...
- 利用 iOS 14 Vision 的手势估测功能 实作无接触即可滑动的 Tinder App
Vision 框架在 2017 年推出,目的是为了让行动 App 开发者轻松利用电脑视觉演算法.具体来说,Vision 框架中包含了许多预先训练好的深度学习模型,同时也能充当包裹器 (wrapper) ...
- 【转】iOS学习之适配iOS10
适配iOS10 2016年9月7日,苹果发布iOS 10.2016年9月14日,全新的操作系统iOS 10将正式上线. 作为开发者,如何适配iOS10呢? 1.Notification(通知) 自从N ...
- iOS 10 版本适配问题收集-b
随着iOS10发布的临近,大家的App都需要适配iOS10,下面是我总结的一些关于iOS10适配方面的问题,如果有错误,欢迎指出. 1.系统判断方法失效: 在你的项目中,当需要判断系统版本的话,不要使 ...
- iOS 10 的适配问题
随着iOS10发布的临近,大家的App都需要适配iOS10,下面是我总结的一些关于iOS10适配方面的问题,如果有错误,欢迎指出. 1.系统判断方法失效: 在你的项目中,当需要判断系统版本的话,不要使 ...
- iOS 10 的适配问题-b
随着iOS10发布的临近,大家的App都需要适配iOS10,下面是我总结的一些关于iOS10适配方面的问题,如果有错误,欢迎指出. 1.系统判断方法失效: 在你的项目中,当需要判断系统版本的话,不要使 ...
随机推荐
- docker dockerfile基础指令
dockerfile是用来构建docker镜像文件!命令参数脚本 构建步骤 1.编写一个dockerfile文件 2.dockerbuild构建成为一个镜像 3.docker run运行镜像 4.do ...
- 如何使用深度学习技术探测代码逻辑死循环 —— 浪潮集团的“公开号CN117271314A”专利
专利公开号: CN117271314A 新闻链接: https://mbd.baidu.com/newspage/data/landingsuper?context={"nid"% ...
- Ubuntu Firefox浏览器播放视频报错,提示“需要安装所需的视频编码器”——解决方法:安装视频解码器
给电脑重新做了一个Ubuntu的系统,安装系统的时候没有选择安装第三方软件,结果开机进系统打开firefox浏览器看个电影报错,提示"需要安装所需的视频编码器",效果如下: 解决方 ...
- 实现一个终端文本编辑器来学习golang语言:第三章文本查看器part1
本章我们来完成文本编辑器的文件打开和查看功能,最后成品如上图.我们将分4步,逐渐完成本章所需功能.内容比较多,会分为两个部分,第一部分主要关注于"View视图"和"buf ...
- vue 文件流下载
/** * 文件转为文件流 * @param {file} file //文件 */ export function getFileBlob(file) { var dataUrl va ...
- 安装RabbitMQ遇到的一些坑
Ubantu18.0正确安装RabbitMQ 1.安装erlang 因为RabbitMQ需要erlang语言的支持,所以我们需要先安装erlang. sudo apt-get install erla ...
- 关于Mongodb索引创建的一些体会
mongodb索引分类以及创建我就不多说了,如果想了解可以直接在百度上搜索,这里我说一下关于索引创建的个人想法. 1.优先给一些Id类字段添加索引,查询时可以缩小扫描范围. 2.创建联合索引时,索引字 ...
- zblog免费插件分享前端代码支持一键复制
zblog默认的代码文件在网页前端是不支持一键复制的,这会让访客复制长代码的时候不太方便,甚至有可能会出错,影响体验,下面分享一个非常简单的免费插件,安装之后,前端代码就能一键复制了. 插件使用方法: ...
- 【Linux】之切换root用户与重启系统相关命令
一.切换用户 <Linux中怎么从root用户切换到普通用户> su是在用户间切换,可以是从普通用户切换到root用户, test@ubuntu:~$ su Password: root@ ...
- C#设计模式入门实战教程
什么是设计模式 设计模式是对面向对象设计中反复出现的问题的解决方案.它们提供了被反复使用.多数人知晓的.经过分类编目的代码设计经验总结. 设计模式的作用 提高代码的可重用性:通过定义一套标准的解决方案 ...