首页
学习
活动
专区
圈层
工具
发布

在SwiftUI中使用UIKit视图

在相当长的时间中开发者仍需在SwiftUI中依赖UIKit(AppKit)代码。好在,SwiftUI为开发者提供了便捷的方式将UIKit(AppKit)视图(或控制器)包装成SwiftUI视图。...本文将通过对UITextField的包装来讲解以下几点: •如何在SwiftUI中使用UIKit视图•如何让你的UIKit包装视图具有SwiftUI风格•在SwiftUI使用UIKit视图需要注意的地方...将UIKit视图包装成SwiftUI的视图时,我们需要了解两者生命周期之间的不同,不要强行试图找到完全对应的方法,要从SwiftUI的角度来思考如何调用UIKit视图。...image-20210823091321562 查看源代码 避免滥用UIKit包装 尽管在SwiftUI中使用UIKit或AppKit并不麻烦,但是当你打算包装一个UIKit控件时(尤其是已有SwiftUI...希望本文能对你学习和了解如何将UIKit组件导入SwiftUI提供一点帮助。

10.1K22

iOS 开发实战:从入门到精通 SwiftUI

│Views│ViewModels│Models│Services│├───────────┴───────────┴───────────┴─────────────────┤│DataLayer(CoreData...───┤│NetworkLayer(URLSession/Alamofire)│└─────────────────────────────────────────────────────┘```##SwiftUI...background(Color.blue).cornerRadius(12)}}}```##常用技术对比|功能|推荐方案|备选方案||------|----------|----------||UI框架|SwiftUI...|UIKit||数据持久化|SwiftData|CoreData,Realm||网络请求|URLSession|Alamofire||状态管理|@Observable|Combine||依赖注入|Environment...|Swinject||单元测试|XCTest|Quick/Nimble|##总结SwiftUI结合SwiftConcurrency和SwiftData,让iOS开发更加现代化。

19510
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    AttributedString——不仅仅让文字更漂亮

    : •将UIKit或AppKit控件包装成SwiftUI控件,在其中显示NSAttributedString•通过代码将NSAttributedString转换成对应的SwiftUI布局代码•使用SwiftUI...AttributedString同时提供了SwiftUI、UIKit、AppKit三种框架的可用属性。UIKit或AppKit的控件同样可以渲染AttributedString(需经过转换)。...目前支持的属性明显少于uiKit和appKit。估计待日后SwiftUI提供更多的显示支持后会逐步补上其他暂不支持的属性。•uiKit可以在UIKit下被渲染的属性。...,Core和 Data两个片段的属性不相同,因此产生了两个Run var coreData = AttributedString("Core")coreData.font = .titlecoreData.foregroundColor...为了方便自定义属性集被用于需要指定Scope的场合,在自定义Scope中推荐嵌套入需要的系统框架Scope(swiftUI、uiKit、appKit)。

    4.5K40

    老人新兵 —— 一款 iOS APP 的开发手记

    ,直到后来由于功能的需要在 SwiftUI 下混合使用 UIKit 开发才真正体会到了声明式的优势。...有以下几个难点:SwiftUI 功能十分有限在真正要实现诸多功能时发现,目前很多场景下仍然要通过 UIKit 才能完成,为此又耗费了些心力学习了点 UIKit 的内容( 至少需要掌握两者之间如何混合使用...在最后的 app 里面有接近一半的显示控制其实都是在 UIKit 下完成的,即使像 TextField 这样最基本的需求,SwiftUI 的原生版本有时都无法胜任。...这也是目前 SwiftUI 中控件显示设定的一个问题( 主要是官方并不推荐和支持这样的行为 ),各个 view 中如果通过 UIKit 修改设定的话,之间不隔离。...CoreData 很好用,原生的 iOS 程序还是可以多多考量它的。尾声一不小心就乱写了一大堆,就当是对这几个月的一个简单小结吧。

    3.2K40

    优化在 SwiftUI List 中显示大数据集的响应效率

    destination: ListEachRowHasID()) } } } } struct ListEachRowHasID: View { // 数据通过 CoreData...标识( Identity )是 SwiftUI 在程序的多次更新中识别相同或不同元素的手段,是 SwiftUI 理解你 app 的关键。...除非没有其他选择,否则我并不推荐大家对 UIKit ( AppKit ) 控件进行重新包装,应使用尽可能微小的侵入方式对 SwiftUI 的原生控件进行补充和完善。...import Introspect import SwiftUI import UIKit struct ListUsingUIKitToScroll: View { @FetchRequest...总结 相较于 UIKit ,已经推出了 3 年的 SwiftUI 仍有很多的不足。但回首最初的版本,现在我们已经可以实现太多以前无法想象的功能。期盼 6 月的 WWDC 会带来更多的好消息。

    12.1K20

    SwiftUI - 百行代码变十行,Swift再创辉煌

    // 为什么需要 SwiftUI // 下面是来自王巍对UIKit的诟病 UIKit 提供的是一套符合直觉的,基于控制流的命令式的编程方式。...不过,不管是从使用的便利性还是稳定性来说,UIKit 都面临着巨大的挑战。我个人勉强也能算是 iOS开发的“老司机”了,但是掉到 UIKit 的坑里这件事,也几乎还是我每天的日常。...UIKit的基本思想要求 View Controller 承担绝大部分职责,它需要协调 model,view 以及用户交互。...不仅是用户代码,UIKit本身内部也经常受困于可变状态,各种奇怪的 bug 也频频出现。...SwiftUI 支持的设备要求版本较高,将在7月份开启公测,官方介绍如下: iOS 13.0+ Beta macOS 10.15+ Beta UIKit for Mac 13.0+ Beta tvOS

    3.7K40

    SwiftUI - 百行代码变十行,Swift再创辉煌

    下面来一张牛逼哄哄的SwiftUI效果图,给大家打打牙祭 [1240] 初体验:左边加大括号21行,右边出现一些类似SB的东西,布局UI,设置属性貌似都可以完成 SwiftUI 的特点是什么 SwiftUI...为什么需要 SwiftUI 下面是来自王巍对UIKit的诟病 UIKit 提供的是一套符合直觉的,基于控制流的命令式的编程方式。...不过,不管是从使用的便利性还是稳定性来说,UIKit 都面临着巨大的挑战。我个人勉强也能算是 iOS开发的“老司机”了,但是掉到 UIKit 的坑里这件事,也几乎还是我每天的日常。...UIKit的基本思想要求 View Controller 承担绝大部分职责,它需要协调 model,view 以及用户交互。...不仅是用户代码,UIKit本身内部也经常受困于可变状态,各种奇怪的 bug 也频频出现。

    2.8K30

    苹果全新UI框架来了!可视化编程,自动化减少20%代码量

    UIKit的独特风格,一旦你适应了,接下来的过程就一马平川了。...outlets和操作,都会在编译时进行检查,因此在运行时不会出现UI失败的风险 虽然背后使用来自UIKit和AppKit的控件,但SwiftUI凌驾于二者之上,能够有效地使底层UI框架成为一个实现细节,...尽可能的依赖工具 通过消除源码控制的痛点、消除对UIKit的严重依赖、消除Interface Builder可能遇到的一些连接混淆,苹果希望开发者更多的使用Swift,尽可能的依赖工具而不是纠结于一些不必要的事情...Framework Integration 使用 UIKit: ?...比如,它只支持Swift,你不能在Obj-C里使用SwiftUI;SwiftUI目前还不是很成熟,正在从事iOS开发的程序员可能更应该继续使用Obj-C,直到SwiftUI足够成熟。

    6.3K20
    领券