将 ViewModifier 应用于 UIViewRepresentable

2024-01-02

我为 UITextField 创建了一个 UIViewRespresentable 。我想应用修饰符:

myTextField.font(.headline).keyboardType(keyboardType)

即使我的 UIViewRepresentable 很简单,这也不起作用:

class MyTextField: UITextField { ... }

struct MyFieldField: UIViewRepresentable {
    private let field = MyTextField()
    func makeUIView(context: Context) -> MyTextField { return field }
    func updateUIView(_ uiView: MyTextField, context: Context) {
        ...
    }
}

UITextField是一个 UIKit 组件,而不是 SwiftUI 组件。目前不尊重.font()或任何其他 SwiftUI 修饰符。此外,你目前无法创建 https://developer.apple.com/documentation/swiftui/font a UIFont从 SwiftUIFont。所以,虽然你可以做@Environment(\.font) var font: Font要获取当前值,您将无法在 UIKit 领域中使用它做任何有用的事情。

You can:

  1. 只需设置一个UIFont直接在你的UIViewRepresentable
  2. Use UIFont.TextStyle
  3. 之间的地图Font.TextStyle and UIFont.TextStyle

对于其中任何一个,您都需要在您的UIViewRepresentable保持该值,然后在期间应用它updateUIView(context:)

struct MyFieldField: UIViewRepresentable {
  // Your three options
  var myUIFont: UIFont
  var myUITextStyle: UIFont.TextStyle
  var mySwiftUITextStyle: Font.TextStyle // map this onto UIFont.TextStyle
  ...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 ViewModifier 应用于 UIViewRepresentable 的相关文章

随机推荐

  • 在 Xcode 6 上模拟出现问题

    我安装了 Xcode 6 gm 版本 我创建了新项目 并在带有 ios 8 的 iPhone 6 或 iPhone 5s 模拟器上运行它 一切都很好 但是当我在 iphone 5s 部署目标 ios 7 1 上进行模拟时 设备屏幕不是全屏
  • Fine Uploader - 选择/上传图像后获取宽度和高度尺寸

    使用fine uploader 我需要能够获取所选文件的原始宽度和高度尺寸 以像素为单位 以便我可以在以后在我的页面上使用它们 有没有办法在选择文件后或在完成成功回调时执行此操作 Fine Uploader 不提供此类数据 但您可以轻松确定
  • 缺少 PercentRelativeLayout 百分比值的 XML 资源类型?

    似乎新的百分比支持库已发布 但不允许在维度 xml 文件中引用百分比值 也就是说 而不是
  • 在 Xcode 5 中编辑故事板非常慢

    我有 Xcode 5 故事板编辑速度非常慢 每次启动 Xcode 时我都会收到以下消息 文件 MainStoryboard storyboard 有 26 个内部不一致之处 已被发现并修复 and 多个资源具有相同的名称 yellowbut
  • psycopg2 安装错误 - 库未加载:libssl.dylib

    我尝试安装psycopg2在 virtualenv 中使用pip 编译看起来没问题 它说 成功安装了 psycopg2 但是当我尝试将其导入到 python 解释器 在 virtualenv 中 时 它指示错误 File
  • FFI 返回一个巨大的整数值而不是 0

    我已将 NumericalIntegration C 库封装在 Haskell 中 Here https github com stla numerical integration是该软件包的最新版本 Hackage 上的版本较旧 这是 C
  • 自动从 png sprite 表中查找帧尺寸 [重复]

    这个问题在这里已经有答案了 可能的重复 PySide 分离精灵表 将图像分离成连续的颜色区域 https stackoverflow com questions 14432021 pyside separating a spriteshee
  • 日志中的文件无法访问错误 (setuptools)

    当我运行我的应用程序时 我的应用程序引擎日志给出以下错误 WARNING 2012 03 01 23 27 31 089 py zipimport py 139 Can t open zipfile Library Frameworks P
  • 使用EA生成类图[逆向工程]

    我正在尝试使用 EA 的逆向工程选项生成类图 我能够使用选项 导入源目录 成功导入我的代码 如何从导入的文件生成类图 导入后 类图被添加到每个包中 我用 Java 进行了测试 它只包含包的类 因此 如果您想创建更复杂的类图 则必须创建一个新
  • 如何在 Twitter 引导程序中仅显示一次模式?

    这是我现在的代码 在页面加载时 模型会显示 但当我刷新时 它会一直显示它应该只显示一次 cookie 来自https github com carhartl jquery cookie https github co
  • 我不明白我的 NullPointerException 有什么问题或者为什么它存在

    这些是什么 每当我尝试将对象传递给数据库助手时 我的应用程序就会不断崩溃 变量名称是 e 我已将对象中的数据显示在 Toast 通知中 一切都很好 但是当我尝试将其传递给数据库助手时 我什么也得不到 我什至将日志添加到每隔一行 但由于该方法
  • Jinja2 用于单词模板

    我想使用 jinja2 进行单词模板 就像提到的那样this http reinout vanrees org weblog 2012 07 04 document automation html短文 我面临的问题如下 如果我把 title
  • 在 R 控制台中指定字体 - 多平台解决方案?

    这对于 R 问题来说相当平常 但我想在我的 R 控制台中指定字体 在 Windows 中这很容易做到 约翰 库克 John Cook 写了一篇很棒的小文章 http www johndcook com blog 2008 10 31 cha
  • html表格根据值设置一些单元格文本颜色

    我有一个 html 表 在特定列中 文本设置为 Y 或 N 我想知道如果值为 N 是否可以在加载时以编程方式将文本的颜色设置为红色 table tr td N td td Y td tr table Using jQuery http jq
  • torch 相当于 numpy.r_

    numpy 有 r https numpy org doc stable reference generated numpy r html which 将切片对象转换为沿第一个轴的串联 这是快速构建数组的简单方法 有两种用途 案例 如果索引
  • 递归日志记录导致 Python 3 中的解释器崩溃

    以下代码记录错误并调用自身 导致堆栈溢出并最终导致 Python 3 6 中的核心转储 gt gt gt import logging gt gt gt def rec logging error foo rec gt gt gt rec
  • 使用 Jsch 生成 4096 位 RSA 密钥比 2048 位慢得多

    我需要为客户端 服务器应用程序创建公钥和私钥 RSA 密钥 并且我正在使用JSch图书馆 http www jcraft com jsch 这样做 到目前为止 我一直在生成 4096 位密钥 因为我希望获得尽可能最好的安全性 然而 这需要
  • SpamAssassin 如何定义 BAYES_99 ?如何避免呢?

    SpamAssassin 将我的电子邮件标记为 BAYES 99 这意味着该电子邮件 99 100 是垃圾邮件 SpamAssassin 检测此规则的机制是什么 通过关键字 以及如何避免命中此规则 BAYES 99 是 SpamAssass
  • 在heroku master上推送git时Cython出错

    I am getting these errors when I hit the command git push heroku master It tells me that I have to install Cython I had
  • 将 ViewModifier 应用于 UIViewRepresentable

    我为 UITextField 创建了一个 UIViewRespresentable 我想应用修饰符 myTextField font headline keyboardType keyboardType 即使我的 UIViewReprese