首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Xcode -无法设置UITextView背景色(设备处于暗模式)

基础概念

UITextView 是 iOS 开发中用于显示和编辑多行文本的控件。暗模式(Dark Mode)是 iOS 系统提供的一种用户界面主题,旨在减少屏幕亮度对眼睛的影响,并且在低光环境下更加舒适。

相关优势

  • 用户体验:暗模式可以提供更好的视觉体验,特别是在夜间或低光环境下。
  • 节能:暗模式可以减少屏幕亮度,从而节省电池寿命。

类型

  • 系统级暗模式:由系统控制,所有支持暗模式的 App 都会自动切换到暗模式。
  • 应用级暗模式:由应用自身控制,可以在不同模式下提供不同的 UI 风格。

应用场景

  • 阅读应用:如新闻阅读、电子书阅读等,暗模式可以减少眼睛疲劳。
  • 社交媒体:如微博、朋友圈等,暗模式可以提供更好的夜间使用体验。
  • 办公应用:如笔记、文档编辑等,暗模式可以提高工作效率。

问题原因及解决方法

在暗模式下,UITextView 的背景色可能无法正确设置,这是因为 iOS 系统在暗模式下会对 UI 元素的默认颜色进行调整。

解决方法

可以通过以下步骤来确保 UITextView 在暗模式下正确显示背景色:

  1. 设置背景色
  2. 设置背景色
  3. 使用 overrideUserInterfaceStyle: 在某些情况下,你可能需要强制应用使用特定的界面风格。可以通过设置 overrideUserInterfaceStyle 属性来实现:
  4. 使用 overrideUserInterfaceStyle: 在某些情况下,你可能需要强制应用使用特定的界面风格。可以通过设置 overrideUserInterfaceStyle 属性来实现:
  5. 使用 UIColorresolvedColorWithTraitCollection: 方法: 这个方法可以根据当前的 trait collection(包括暗模式)来解析颜色:
  6. 使用 UIColorresolvedColorWithTraitCollection: 方法: 这个方法可以根据当前的 trait collection(包括暗模式)来解析颜色:

示例代码

代码语言:txt
复制
import UIKit

class ViewController: UIViewController {
    @IBOutlet weak var textView: UITextView!

    override func viewDidLoad() {
        super.viewDidLoad()
        
        if #available(iOS 13.0, *) {
            textView.backgroundColor = UIColor { traitCollection in
                if traitCollection.userInterfaceStyle == .dark {
                    return .black
                } else {
                    return .white
                }
            }
        } else {
            textView.backgroundColor = .white
        }
    }
}

参考链接

通过以上方法,你可以确保 UITextView 在暗模式下正确显示背景色,提升用户体验。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

最新iOS设计规范七|10大视觉规范(Visual Design)

你可以将APP设置为动态适应各种特征,包括: 不同的设备屏幕尺寸,分辨率和色域(sRGB / P3) 不同的设备方向(纵向/横向) 拆分视图 iPad上的多任务处理模式 动态类型文本大小更改 基于区域设置启用的国际化功能...在多个设备上预览你的APP。你可以使用模拟器(Xcode附带)预览你的APP,来检查裁剪以及其他布局问题。如果你的APP支持横向模式,不管设备是左旋转还是右旋转,都要确保你的布局看起来很棒。 ?...在一种外观上运作良好的设计可能在另一种外观上无法运作。 调整对比度和透明度可访问性设置时,请确保在黑暗模式下内容清晰易读。在模式下,应单独或一起打开“增加对比度”和“减少透明度”来测试内容。...暗黑模式的颜色 深色模式中的配色包括较的背景颜色和较浅的前景色,经过精心挑选以确保对比度,同时也保证了两种模式之间的统一性。 首选系统背景色。...模式是动态的,这意味着当界面位于前景(例如,弹出框或模式表)中时,背景颜色会自动从基本颜色变为高色。该系统还使用增强的背景色在多任务环境中的应用程序之间以及多窗口上下文中的窗口之间提供视觉隔离。

8.1K30

一篇文带你了解黑暗UI模式的过去,现在和未来

然后,如果模式可以真正改善对焦,可读性,眼睛疲劳度和电池寿命,那么我们可以想象到模式可能会对我们的技术使用和健康产生巨大影响。好的,既然场景设置为黑暗模式,那么让我们深入探讨一下。...Xcode黑暗模式界面 甚至是彭博社的应用程序:交易者可以通过黑暗模式更快地看到信息。 ?...这种情况下,它是没有切换黑暗模式和浅色模式的选择的,因为它仅仅是一种设计选择。 ? 手表官网设计 我们还必须承认,有些人确实患有无法使用亮色模式。视力障碍或畏光的人将从黑暗模式中受益匪浅。...开发工程师在使用Xcode,Android Studio进行程序开发时,这些开发平台可以用非常简单的方法来为应用的亮色模式提供一组设计素材,为模式提供另一组素材。从技术上讲,模式很容易实现。...对于开发人员来说,能够为两种模式提供两个不同的应用程序图标,以及允许用户为亮模式模式设置不同的墙纸,将是一个很好的选择。 作者:Olivier Berni 翻译:静电

1.4K50
  • iOS导航栏使用总结

    目录: 一、设置导航栏样式 二、解决自定义导航栏返回按钮后侧滑不可用问题 三、隐藏导航栏底部的分割线 四、导航栏引起的布局问题 相关文章:iOS状态栏的使用总结 一、设置导航栏样式 设置导航栏的样式可分为全局设置与局部设置...比如我们进入一个页面,需要设置当前导航栏的背景色为灰色,使用如下方法: //进入页面时设置颜色:灰色 - (void)viewWillAppear:(BOOL)animated{ [super...就不需要触发滑动手势, return NO; } return YES; } @end 三、隐藏导航栏底部的分割线 隐藏导航底部分割线也是我们偶尔会遇到的开发需求,首先我们可以通过Xcode...我们可以通过一段代码来测试一下效果,在默认导航栏(半透明)的视图控制器里添加如下代码: //UITextView是滑动视图,内容自动向下偏移,不会被导航栏覆盖 UITextView *leftTextView...= [[UITextView alloc] init]; leftTextView.frame = CGRectMake(0, 0,100, kDeviceHeight); // leftTextView.backgroundColor

    3.2K20

    FlutterUnit 已上架 iOS,暗色模式全面支持

    FlutterUnitWin.zip 免安装,解压即用 MacOS FlutterUnitMac.zip 免安装,解压即用 Web toly1994328.gitee.io/flutter_web 直接访问 ---- 二、暗色模式全平台支持...另外平板设备中,在拖拽过程中可以根据窗口尺寸自适应相关: ---- 桌面端部分界面展示 桌面端组件页(亮) 桌面端组件页() 桌面端搜索(亮) 桌面端搜索() 桌面端代码生成(亮) 桌面端代码生成...() 绘制集录(亮) 组件详情页() ---- 移动端部分界面展示 移动端组件页(亮) 移动端组件页() 绘制详情页(亮) 绘制详情页() 组件详情页 组件详情页...---- Xcode 上传到 AppStore 当你 Xcode 显示上传成功: 但是 AppStoreConnect 中没有看到构建版本,此时立刻去查看邮箱,可能是某些权限未配置导致的。...然后应用会处于 可供审核 状态,需要进入 [App审核] 页签,查看条目。在顶部右上角会有 [重新提交至审核] 的字样,我不知道,没点,所以傻傻等一天。 ---- 2.

    35650

    Xcode 10

    Xcode还为您提供了强大的工具,可以为macOS创建自己的黑暗应用程序。Interface Builder可让您快速将设计和预览从亮到切换。资产目录定义资产和命名颜色。...您可以在调试时将应用程序切换为模式。这一切都是使用Xcode中仅适用于您的应用的控件完成的。无需更改系统设置。...模拟和测试 Xcode包含一个内置的强大测试引擎。一次跨多个物理设备运行单元测试,以及UI和性能测试。或者利用Mac的处理能力,使用并行运行的模拟设备大大加快测试速度。...对于持续集成设置,您可以启动许多不同的模拟设备类型,以便从头到尾运行完整的测试工具。或者,为了尽可能快地完成测试,Xcode可以生成单个模拟设备的许多克隆,并在一小部分时间内完成所有测试。...您还可以在网络中使用另一台Mac来托管Xcode Server以进行自动构建和测试。使用专用的Xcode CI设置启动和运行非常简单,因为这些功能内置于Xcode中,无需额外的服务器软件。

    3K20

    苹果iOS 13 新设计规范全面解析

    关于如何设计黑暗模式,苹果也给出了几点建议。在iOS 13.0及更高版本中,人们可以选择采用称为黑暗模式外观。在模式下,系统为所有屏幕,视图,菜单和控件使用较的配色,使前景内容在较的背景下突出。...黑暗模式支持所有辅助功能。 人们可以选择模式作为其默认界面风格,并且他们可以使用设置功能,使设备在环境光线较低时自动切换到黑暗模式。...调整对比度和透明度辅助功能设置时,请确保在黑暗模式下的内容保持清晰易读。在黑暗模式下,您应该单独测试,并一并打开“增加对比度”和“降低透明度”来测试您的内容。...您可能会在深色背景上找到文本不易辨认的地方。您可能还会发现在模式下启用“增加对比度”会导致文本和深色背景之间的视觉对比度降低。...同样,在iPad的邮件应用中,侧推弹层使用了稍浅一点的颜色作为背景色。 ? 但是当使用分屏模式的时候,左右两侧的设计都使用了浮层的颜色作为背景色

    4.5K40

    iOS小技能: 限制账号退出登陆后无法收到推送功能(递归设置和删除别名)

    https://docs.jiguang.cn/jpush/client/iOS/ios_api/#apiios 退出登陆时删除别名的即可 1.1 设置别名 设备别名(递归的方式,如果设置失败就继续重试...3.3.2 版本新增的错误码;极光于 2020/03/10 对「别名设置」的上限进行限制,最多允许绑定 10 个设备,如需更高上限,请联系商务。...3.3.2 版本新增的错误码;极光于 2020/03/10 对「别名设置」的上限进行限制,最多允许绑定 10 个设备,如需更高上限,请联系商务。...} WithAlis:nil]; } } 1.2 查询当前设备设置的别名 /** 查询当前alias @param completion 响应回调 @param...如果无法下载,可通过添加WX:iosrev 修订版demo下载: iOS15 消息推送语言播报【修订版】(处于后台/被杀死的状态仍可进行语言播报) https://download.csdn.net/download

    1.6K30

    iOS11新特性

    Xcode 编辑器和编译器 速度就是生命,而开发者的生命都浪费在了等待编译上。Swift 自问世以来就备受好评,但是缓慢的编译速度,时有时无的语法提示,无法进行重构等工具链上的欠缺成为了最重要的黑点。...UITextView 和 UITextField 原生支持拖拽,UICollectionView 和 UITableView 的拖拽有一系列专用的 delegate 来表明拖拽的发生和结束。...如果你想采用这项设计的话也非常简单,设置 navigation bar 的 prefersLargeTitles 即可。...DeviceCheck 允许你通过你的服务器与 Apple 服务器通讯,并为单个设备设置两个 bit 的数据。...但是考虑到无法后台常驻,实用性就打了折扣。不过笔者不是很熟这块,也许能有更合适的场景也未可知。

    61630

    iOS 10中如何搭建一个语音转文字框架

    设计App UI 前提:你需要Xcode 8 beta版本和一个运行iOS 10 beta系统版本的iOS 设备。 先从创建一个新的命名为SpeechToTextDemo的单视图工程开始。...接下来在 ViewController.swift文件中为UITextView 和UIButton 定义outlet变量。...在这个demo当中,我设置UITextView 的名称为“textView”,UIButton的名称为“microphoneButton”。...在这里我们设置session的类别为recording,模式为measurement,然后激活它。注意设置这些属性有可能会抛出异常,因此你必须把他们放入try catch语句里面。...把app部署到一个iOS10的设备,然后点击“Start Recording”按钮。去说些什么吧! 注意: 苹果公司对每个设备的识别功能都有限制。

    2K20

    APP设计实例解析,深色模式为什么突然就火了?

    为了适配系统,不少APP纷纷推出了深色模式。 使用OLED屏幕的设备,在纯黑色下可以有效降低耗能,进一步延长续航时间。除此之外,深色模式还可以有效解决OLED屏烧屏、费眼的问题。...如果设置了聊天背景,聊天背景图片也会自动调,便于阅读。 虽然整体色彩加深,但微信在设计时仍保持着清晰的层次。...虽然这样会让整体页面看起来比较和谐,但内容变得不够突出,无法在最短时间看清标题,对于一个以内容为主的社区来说,无疑会给用户带来不太好的体验。...知乎在设计夜间模式时目标应该很明确,即只考虑用户在夜间的使用,因此整体色调都很暗,在强光环境下无法正常浏览。...bilibili动画 B站刚推出深色模式时收到了许多批评,字体和背景色对比不强,视频封面仿佛蒙了一层雾,一刀切的化处理,导致用户浏览体验极差。

    1.5K30

    iOS10中Messages独立应用与扩展插件详析

    使用Xcode8创建一个新的工程,选择Sticker Pack Application模板,如下图所示: ?...在MessagesViewController类中添加其他视图控件,大部分iOS App开发中可以使用的UI控件这里都可以使用,但是有一点需要注意,对于可以弹出键盘的UI控件,例如UITextView与...UITextField,当Messages App界面处理Compact模式时,键盘是不能弹出的,只有当界面处于Expanded模式时,键盘才被允许弹出。        ...在其中根据模式设置布局参数 -(void)didBecomeActiveWithConversation:(MSConversation *)conversation { // Called...MSStickerBrowserView是用于展示表情视图的容器,其继承自UIView,但却和UICollectionView十分类似,其中方法解析如下: //初始化方法 设置frame 和其中表情视图的尺寸模式

    1.1K10

    iOS——配适深色模式

    首先,所有 UIKit 本身所提供的 UI 控件(例如 UIView,UILabel,UITextView等等) ,只要没有针对颜色等内容特殊设置过,都会自动适配深色模式,这部分是我们开发者不需要去关心的...比如这样写: self.view.backgroundColor = [UIColor systemRedColor]; (滑动显示更多) 当然,系统提供的这些动态颜色肯定是无法满足我们的实际开发需求,...purpleColor]; } }]; self.view.backgroundColor = color; (滑动显示更多) 除了这个API,我们还可以通过Xcode11...,那也可以利用xcassets 中图片新增的 Apperance 属性,分别设置两种模式下所使用到的图片: 模糊效果 模糊效果也就是我们常说的毛玻璃效果。...如果我们希望某个单独的视图以一种固定的显示模式来显示的话, 我们可以通过setOverrideUserInterfaceStyle这个方法来设置视图的显示模式

    1.6K10

    一篇文章看懂iOS 11 SDK所有新特性与功能

    Xcode 编辑器和编译器 速度就是生命,而开发者的生命都浪费在了等待编译上。Swift 自问世以来就备受好评,但是缓慢的编译速度,时有时无的语法提示,无法进行重构等工具链上的欠缺成为了最重要的黑点。...由于 Swift 4 编译器也提供了 Swift 3 的兼容 (在 Build Setting 中设置 Swift 版本即可),所以如果没有什么意外的话,我可能会在之后的日常开发中使用 Xcode 9...UITextView 和 UITextField 原生支持拖拽,UICollectionView 和 UITableView 的拖拽有一系列专用的 delegate 来表明拖拽的发生和结束。...DeviceCheck 允许你通过你的服务器与 Apple 服务器通讯,并为单个设备设置两个 bit 的数据。...但是考虑到无法后台常驻,实用性就打了折扣。不过笔者不是很熟这块,也许能有更合适的场景也未可知。

    1.3K70

    实践-小细节 Ⅰ

    nullable,nonatomic,readonly) UINavigationItem   *navigationItem   active=NO;     该属性为YES 的时候,searchBar  处于点击后待输入的搜索编辑状态...5.观察者模式       观察者Observer,一般继承自NSObject,通过NSNotificationCenter的addObserver:selector:name:object接口来注册对某一类型通知感兴趣...比如 只有UILabel  有对行数的设置。  UITextView 无法设置单行输入,当输入的内容超过当前行的长度时就会自动换行,使用回车键也可以达到换行的效果。...UITextField  无法设置多行输入 8.日期格式的设置细节(不带0) d  将日显示为不带前导零的数字(如 1)。如果这是用户定义的数字格式中的唯一字符,请使用 %d。...ss  将秒显示为带前导零的数字(例如 12:15:05) M/d/yyyy H:mm      12/7/1958 20:50 9.Xcode8 控制台乱码输出: Xcode8里边 Edit Scheme

    1.6K20

    iOS开发笔记(十)— Xcode、UITabbar、特殊机型问题分析

    正文 一、Xcode10.1 import头文件无法索引 【问题表现】如图,当import头文件的时候,索引无效,无法联想出正确的文件; ?...从已有的知识来分析,很可能是Xcode的头文件搜索路径有问题,于是尝试把工程文件下的路径设置递归搜索,结果又出现以下问题: ? 【问题解决】在多次尝试无效之后,最终还是靠Google解决该问题。...如下路径,修改设置 Xcode --> File --> Workspace Settings --> Build System --> Legacy Build System ?...【问题表现】设置tabbar的背景色是0xFFFFFF的白色,但是实际的效果确是灰白色,并不是全白色; 【问题分析】tabbar默认是透明的(属性translucent),会对tabbar下面的视图进行高斯模糊...,然后再与背景色混合。

    1.2K20

    【IOS】IOS开发问题解决方法索引(四)

    1 IOSNSTimer线程无法在委托方法之外停止 NSTimer无法在线程的委托方法之外停止。...否则,请前往下文“如果您从未将设备与 iTunes 同步,或没有权限访问电脑”部分。 2. 如果设备处于停用状态,或者 iTunes 没有自动同步您的设备,请将设备与 iTunes 同步。...备份和同步完成后,请恢复您的设备。 4. 当 iOS 设置助理要求设置设备时,请选取“从iTunes 备份恢复”。 5. 在 iTunes 中选择您的设备,然后选取最近的设备备份。...如果您已使用 iCloud 来备份,或许能在抹掉设备内容后恢复最新的备份并重设密码。 或者,将设备置于恢复模式并将其恢复以抹掉设备上的内容: 1....iTunes 将提醒您,其检测到一个处于恢复模式设备。点按“好”,然后恢复设备。 其他信息 了解有关设置和使用密码的信息。 您可以将设备配置为在连续十次输入错误密码后自动抹掉。

    1.2K20

    富文本AttributedString的总结

    设置的控件有UILabel、UITextField和UITextView。...:UIColor.darkGray //设置背景色 NSAttributedStringKey.backgroundColor:UIColor.clear //设置基准位置 (正值上偏,负值下偏) NSAttributedStringKey.baselineOffset...更准确点说是在UILabel 和 UITextField 中无法实现点击链接启动浏览器打开一个URL地址,因为在此过程中用到了一个代理函数。只能用在 UITextView 中。...需要实现UITextView的代理方法 - (BOOL)textView:(UITextView *)textView shouldInteractWithURL:(NSURL *)URL inRange...设置textView的 editable 属性为 NO,在可编辑的状态下是不可点击的。 在模拟器环境下一直无法点击,在真机上是正常的,不知道是不是模拟器不支持。 OC代码 原文地址

    3.4K20
    领券