UITableView 在视图出现之前重置其背景颜色

2024-02-15

我正在使用可能有点奇特的方式来初始化我的 UI 组件。我以编程方式创建它们,其中有一个 UITableView 实例,我在初始化时立即设置其背景颜色,如下所示:

class MyViewController: UIViewController {
    ...
    let tableView = UITableView().tap {
         $0.backgroundColor = .black
         $0.separatorStyle = .none
    }
    ...
}

where tap是扩展函数:

func tap(_ block: (Self) -> Void) -> Self {
    block(self)
    return self
}

这在我之前的项目中非常有效,该项目是在 Xcode 8 中创建的,然后迁移到 Xcode 9,没有破坏任何东西。但现在我已经在 Xcode 9 中创建了全新的项目,并将上述扩展复制粘贴到其中,但似乎出了问题。当我的视图控制器出现在屏幕上时,表格具有白色背景和默认分隔符插入。

这似乎只影响某些属性,因为其他属性正在正常工作(例如$0.register(nib: UINib?, forCellReuseIdentifier: String)注册所需的细胞类别和$0.showsVerticalScrollIndicator = false隐藏滚动指示器)。

也许你们中的一些人可以让我知道问题的核心是什么。

Here's 完整代码 https://gist.github.com/dkarbayev/80583019503e37c2e8cb83e601d84001,要重现该问题,只需创建一个新项目并替换 ViewController.swift 的内容。如你看到的,table有正确的rowHeight(160) 但重置其背景颜色。

至于“视图出现之前”的声明:我已经打印了表格的背景颜色viewDidLoad, viewWillAppear and viewDidAppear像这样:

print(#function, table.backgroundColor.debugDescription)

– 它仅在最后一次调试打印中更改其颜色:

viewDidLoad() Optional(UIExtendedGrayColorSpace 0 1)
viewWillAppear Optional(UIExtendedGrayColorSpace 0 1)
viewDidAppear Optional(UIExtendedSRGBColorSpace 1 1 1 1)

我最终将初始化转移到了惰性变量的函数中——事实证明,在视图控制器初始化期间初始化 UITableView 会产生一些副作用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

UITableView 在视图出现之前重置其背景颜色 的相关文章

  • Swift try inside Objective-C 块

    我需要创建一个函数foo它接受一个抛出闭包作为参数 我可以使用 Swift 或 ObjC 来实现它 但我需要能够从两者中调用它 像这样 Swift func bar throws func foo block throws gt void
  • iPhone:每日本地通知

    我正在尝试实现本地通知 这就是我所设置的 Current date NSDate date NSDate date Add one minute to the current time NSDate dateToFire date date
  • UICollectionView 设置列数

    我刚刚开始学习 UICollectionViews 我想知道是否有人知道如何指定集合视图中的列数 默认设置为 3 iPhone 肖像 我查看了文档 似乎找不到简洁的答案 对于 Swift 5 和 iOS 12 3 您可以使用4 以下实现为了
  • 如何本地化 iOS 故事板

    我有一个包含一些视图的 iPhone 故事板 例如 导航项标题名为News 应翻译为其他语言 当我向故事板添加新的本地化版本时 它会为新语言创建当前故事板的副本 在这里我可以更改导航项的标题 但对我来说它似乎不太有用 如果我的故事板包含 1
  • iOS 何时清理本地应用程序 ./tmp 目录?

    iOS什么时候清理本地应用程序 tmp目录 请注意 这不是一个骗局这个问题 https stackoverflow com questions 3593900 iphone storage in tmp directory 我问的是应用程序
  • 如何在导航栏上添加 UIView?

    我需要覆盖UINavigationBar with UIView像这儿 除了使用带有按钮返回的自定义 UIView 作为导航栏之外 还有其他方法可以做到这一点吗 您可以将子视图添加到应用程序的基本视图 UIApplication share
  • iOS 上关键 ClientState 警告的默认访问速度缓慢

    在测试我的 iOS 应用程序时 我收到 对关键 ClientState 的默认访问速度慢 耗时 0 034635 秒 容差为 0 020000 警告 它似乎是间歇性发生的 我试图环顾四周看看它是关于什么的 但我并不完全确定 任何帮助表示赞赏
  • 单击按钮时退出应用程序 - iOS [重复]

    这个问题在这里已经有答案了 可能的重复 iOS 4 0 中退出应用程序 https stackoverflow com questions 3097244 exit application in ios 4 0 我有一个 AlertView
  • iPhone 的翻译器?

    我对为 iPhone 制作一个解释器很感兴趣 这将是一个实验性的想法 但可能会很棒 我喜欢让我自 己的语言适合移动计算和数学的想法 我查阅了很多资料 发现有关 iPhone 上的口译员的信息很复杂 苹果会允许什么 我见过这个应用程序 这是一
  • 上下文菜单未在 SwiftUI 中更新

    我正在尝试设置 SwiftUI contextMenu带有一个切换按钮Bool价值 上下文菜单的按钮文本应该在以下情况下更改 Bool切换 但上下文菜单不会更新 有没有办法强制更新上下文菜单 描述问题的示例代码 import SwiftUI
  • 从字典创建 Swift 对象

    如何根据 Swift 字典中的查找值动态实例化类型 希望这对其他人有用 我们需要进行一些研究才能弄清楚这一点 目标是避免巨大的 if 或 switch 语句从值创建每个对象类型的反模式 class NamedItem CustomStrin
  • Bootstrap 响应式表格在 iOS 设备上无法垂直滚动

    这就是我所拥有的 div class table responsive table class table style background transparent table div 我正在使用以下 bootstrap css 文件 ht
  • iOS 7 NS 单线程安全合并冲突

    重新排序两行后 在单线程应用程序上保存简单的数据时遇到问题 我已经成功地简化了编码以重现错误 并且希望其他人尝试这一点时得到第二个意见 这是一次健全性检查 因为我怀疑 iOS 7 引入的核心数据问题 而这在 iOS 6 中工作正常 首先 启
  • “无法取消归档名为 UITableViewController 的元素”

    我一直在按照 构建你的第二个 iOS 应用程序 教程一步步进行 在教程承诺所有错误都会消失之后 我遇到了这个错误 但直到其他错误都出现后 该错误才出现 全部更正 我尝试编译它 错误 The document MainStoryboard i
  • 如何将设备上未保存的图片上传到dropbox帐户?(IOS)

    Dropbox RestClient 仅保存文件 所以我想先将图像保存在本地文件夹中 然后上传它 结果它保存了文件 但它已损坏 NSString localPath NSBundle mainBundle pathForResource I
  • 自动生成的 Swift 桥接标头中“找不到接口声明”

    我当前的项目包含 Swift 和 Objective C 代码 两种类型的源文件都使用另一种语言的代码 当我进行完全清理并重新编译时 几乎每个 Swift 类声明都出现错误Module Swift h 形式为 Cannot find int
  • 找不到 Cocoa/Cocoa.h 文件

    我在用XMPPFramework在我的应用程序中 我已将 Cocoa Cocoa h 导入到我的 m 文件中 但是当我构建项目时Xcode显示错误 错误 未找到 Cocoa Cocoa h 文件 我该如何解决这个错误 如果您正在为 iOS
  • 如何从第二个视图弹回到根视图?

    我使用 2 将 3 个视图 根视图 第 1 个视图 第 2 个视图 连接在一起modal在 Apple Watch 故事板中继续 1 在根视图中 按下 保存 按钮后 将显示第一个模态视图 2 在第一模态视图中 一旦按下 500 按钮 将显示
  • iOS 目标 c 中的 AES/CBC/PKCS5Padding 结果与 Android 不同

    我在 Android 应用程序中使用 AES CBC PKCS5Padding 代码就像 private static String TRANSFORMATION AES CBC PKCS5Padding private static St
  • iOS 中是否需要 Google App Indexing SDK 才能使用 Google DeepLinking?

    我想用谷歌应用程序索引与我的网页和 iOS 应用程序 我支持通用链接 or 深层链接用谷歌术语 与苹果Search并相应地设置我的网页 From 谷歌文档 https developers google com app indexing i

随机推荐

  • Flutter中如何获取应用程序缓存大小?

    我的应用程序是基于图像的 我正在使用缓存网络图像 https pub dev packages cached network image处理来自网络的图像 我想向用户展示设备上缓存的图像大小以及在应用程序中清理的选项 我可以使用清理应用程序
  • 使用 RxJava 时如何重试 HTTP 错误 (401) 的 Retrofit 调用?

    我当前的 Android 应用程序正在使用Retrofit 2 4 0 and RxJava 2 1 16 执行我的 Web 服务调用 我正在使用 Google 登录进行用户身份验证 我希望我的 Retrofit 调用能够检测 HTTP 4
  • java中的自动完成如何与反射一起工作?

    我听说 Eclipse 使用反射来提供自动完成功能 但是它实际上是如何工作的 我搜索了 Google 但没有找到关于它的好文章 任何人都可以解释一下过程或为我提供任何有用的文章吗 谢谢进步 反射 API 只能告诉您正在运行的代码 或者至少
  • 在 Android cordova 应用程序中从 javascript 更改 KeepScreenOn

    我正在尝试从我的 cordova 应用程序控制屏幕超时 该应用程序播放视频 当应用程序播放视频时 我想关闭屏幕超时 当视频暂停或他们正在做其他事情时 我想将其重新打开 如果我在 OnCreate 中设置 KeepScreenOn 标志 它可
  • 处理时间窗口不适用于 Apache Flink 中的有限数据源

    我正在尝试将一个非常简单的窗口函数应用于 Apache Flink 中的有限数据流 本地 无集群 这是例子 val env StreamExecutionEnvironment getExecutionEnvironment env fro
  • 使用 xib 字符串文件本地化的 UiTextView

    我在 xCode 中使用基本国际化来管理应用程序中的多种语言 在 xib 文件中我有这个对象 Xrj 9E 2VK it s an UITextView 在相应的字符串文件中 Xrj 9E 2VK text text translated
  • JBoss 垃圾邮件 XA 恢复警告

    我正在运行一个 JPA Spring 应用程序 该应用程序连接到 Microsoft SQL Server 上多个启用 XA 的数据源 一切工作正常 全局事务正确启动并根据需要回滚 但是 JBoss 有时会变得疯狂 每隔几秒就开始发送以下警
  • 在自定义列表视图中显示联系号码和联系人姓名

    谁能告诉我如何在自定义列表视图中显示电话号码和联系人姓名 代码粘贴在下面 import android app Activity import android database Cursor import android net Uri i
  • 用 SpaCy 中的标签替换实体

    SpaCy 是否可以用其标签替换 SpaCy NER 检测到的实体 例如 我一边吃苹果 一边玩我的苹果 Macbook 我已经使用 SpaCy 训练了 NER 模型来检测 水果 实体 并且该模型成功地将第一个 苹果 检测为 水果 但没有将第
  • python 中的测地线缓冲

    给定土地多边形作为Shapely https pypi python org pypi Shapely MultiPolygon 我想找到代表例如的 多 多边形海岸线周围12海里缓冲区 使用匀称buffer方法不起作用 因为它使用欧几里德计
  • 在析构函数中尝试 Catch 块

    在阅读 Hurb Sutter 的 More Exceptional C 时 我偶然发现了以下代码 Example 19 5 Alternative right solution T Close code that could throw
  • Spring-Security:身份验证后调用方法

    我想跟踪用户何时登录我的应用程序 我有一些代码想在用户通过身份验证后立即执行 问题是 我不知道应该在哪里调用它 spring security 有办法在身份验证后调用方法吗 可能对某人有用 对于 Spring 3 配置安全性
  • RMarkdown:UTF-8 适用于 Knit 按钮,但不适用于 render()

    我正在 RMarkdown 中工作 尝试渲染一个包含一些 UTF 8 字符的文档 当我按下 RStudio 中的 Knit 按钮时 一切都运行良好 但是当我使用 render 函数时 UTF 8 会丢失 这是可重现代码的一小段 output
  • appCompat v7 中的 LinearLayoutCompat 是什么?

    在Android平台的支持库appCompat v7中 有一个android support v7 widget LinearLayoutCompat http developer android com reference android
  • 带有路径参数的 SoapUI REST Web 服务模拟

    我正在尝试为 SoapUI 上的 POST 方法创建一个模拟 Web 服务 我创建了一个 REST 项目 然后创建了一个 MockService 一个 MockAction 并定义了几个响应和资源路径 如果我定义一个相对于我的服务的固定常规
  • 自定义 Cython 生成的 .so 文件的位置

    我有一个 Cython 包 其中包含 C 库的包装器 这是包的树形结构 package api pxd wrap pyx setup py wrapper init py wrap py Doing python setup py buil
  • 尝试部署节点时出错:“java.lang.IllegalArgumentException:无法识别的算法:1.2.840.10040.4.1”

    我开发了一个 Cordapp 并尝试将其作为节点部署到我的工作站 我按照指示操 作https docs corda net deploying a node html windows installing and running corda
  • 带总和的多重左连接

    我正在尝试在 sql 查询中使用 Left Join 在表中显示包含 3 个表总和的信息 带有数据表插件 我使用以下查询成功编辑服务器端查询并通过两个表之间的第一个连接 t1 budget t2 budget changes 显示正确的数据
  • wxHaskell 和 Gtk2HS 的相对优点是什么?

    哪个更适合使用 Haskell wxWidgets 开发 GUI 应用程序 通过wx哈斯克尔 http haskell org haskellwiki WxHaskell 或 GTK 通过Gtk2HS http www haskell or
  • UITableView 在视图出现之前重置其背景颜色

    我正在使用可能有点奇特的方式来初始化我的 UI 组件 我以编程方式创建它们 其中有一个 UITableView 实例 我在初始化时立即设置其背景颜色 如下所示 class MyViewController UIViewController