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

iOS UI: UIHostingController.view不适合Swift 13的内容视图大小

UIHostingController是一个UIKit控制器,用于在SwiftUI中承载和管理UIKit视图。在Swift 13中,UIHostingController.view的大小不适合内容视图。

在SwiftUI中,我们可以使用UIHostingController将SwiftUI视图嵌入到UIKit应用程序中。UIHostingController.view是UIHostingController的根视图,它负责显示SwiftUI视图。

然而,在Swift 13中,UIHostingController.view的大小不会自动适应内容视图的大小。这意味着如果内容视图的大小发生变化,UIHostingController.view的大小不会自动调整,可能会导致内容被截断或溢出。

为了解决这个问题,我们可以手动调整UIHostingController.view的大小,以适应内容视图的大小。可以通过以下步骤实现:

  1. 获取内容视图的大小:可以使用SwiftUI的GeometryReader来获取内容视图的大小。GeometryReader是一个视图容器,可以提供其子视图的几何信息,包括大小。
  2. 更新UIHostingController.view的大小:通过将内容视图的大小应用于UIHostingController.view的frame属性,可以手动更新UIHostingController.view的大小。可以使用UIKit的UIView.animate方法来实现平滑的过渡效果。

以下是一个示例代码,演示如何手动调整UIHostingController.view的大小:

代码语言:txt
复制
import SwiftUI
import UIKit

class HostingController: UIHostingController<ContentView> {
    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        
        // 获取内容视图的大小
        let contentSize = rootView.sizeThatFits(in: CGSize(width: CGFloat.infinity, height: CGFloat.infinity))
        
        // 更新UIHostingController.view的大小
        UIView.animate(withDuration: 0.3) {
            self.view.frame.size = contentSize
        }
    }
}

struct ContentView: View {
    var body: some View {
        Text("Hello, World!")
            .font(.largeTitle)
    }
}

// 在UIKit应用程序中使用UIHostingController
let hostingController = HostingController(rootView: ContentView())

在上面的示例中,我们创建了一个自定义的UIHostingController子类HostingController,并重写了viewDidLayoutSubviews方法。在这个方法中,我们获取了内容视图的大小,并将其应用于UIHostingController.view的frame属性。

需要注意的是,这只是一个解决UIHostingController.view大小不适合内容视图大小的方法之一。根据具体的需求和场景,可能还需要考虑其他因素,如自动布局、适配不同屏幕尺寸等。

推荐的腾讯云相关产品:腾讯云移动开发平台(https://cloud.tencent.com/product/mpp)

这是一个腾讯云提供的移动开发平台,提供了丰富的移动开发工具和服务,包括移动应用开发、移动应用测试、移动应用分发等。可以帮助开发者快速构建和发布移动应用,并提供稳定可靠的云端支持。

希望以上信息对您有所帮助!

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

相关·内容

iOS之深入解析Xcode 13正式版发布40个新特性

一、前言 Xcode 13 包括适用于 iOS 15、iPadOS 15、tvOS 15、watchOS 8 和 macOS Big Sur 11.3 SDK。...二、通用 Xcode 13 包括对 Swift 并发编程原生支持、对 Xcode Cloud 持续集成和交付支持、对 Git 拉取请求集成支持、使用 DocC 在 Swift 框架中创建和查看文档能力...压缩纹理格式; 对于相同内容,Xcode 13 XIP 存档现在大约小 15%。...; 在视图控制器大小检查器中使用 Freeform 模拟度量 Storyboard 场景现在可以直接在画布中使用调整大小旋钮调整大小; NSButton 斜角类型在 macOS 12 中支持斜角颜色...枚举自定义如何将性能测试自定义指标的测量值与设置基线进行比较; XCTest 现在能够在受支持 iOS 设备上 UI 测试中合成指针交互; Xcode 现在为在运行测试时崩溃进程收集代码覆盖率数据

8.8K40

iOS13 Scene Delegate

2)、SceneDelegate三处新增内容 iOS13以后,Xcode新建iOS项目中有增加三处新增内容: 1> 添加一个新类SceneDelegate 新增SceneDelegateClass 2...这是因为iOS13中AppDelegate职责发现了改变: iOS13之前,AppDelegate职责全权处理App生命周期和UI生命周期; iOS13之后,AppDelegate职责是: 1、...下面是纯代码实现界面显示代码: Swift适配代码步骤: 1)第一步,SceneDelegate中添加@available(iOS 13, *) //SceneDelegate.swift @available...项删除 注意2:AppDelegate中有关事件循环方法,在iOS 13后是不会走iOS13以下才会收到事件回调。...四、SwiftUI中SceneDelegate SwiftUI创建iOS 13项目,所以SwiftUI应用程序主要依靠SceneDelegate来设置应用程序初始UI

5.3K20
  • 肘子 Swift 周报 #025 | Lets VisionOS, Lets rock and roll!

    前一期内容|全部周报列表 原创 SwiftUI 视图与 @MainActor[7] [Fatbobman( 东坡肘子 )](https://twitter.com/fatbobman "Fatbobman...近期推荐 Writing GNOME Apps with Swift[8] david-swift[9] 近年来,Swift 社区积极推进该语言在各个平台上应用,但由于缺少适合 UI 框架,其较少被用于在非苹果平台中构建桌面应用...尽管本文是系列文章后续,但其内容设计为可以独立阅读,为读者提供了完整见解。...in url.lines 开发者可以逐行从 url 中获取数据,尽管这为开发者提供了极大便利,但这种方法并不适合于建立 WebSocket 连接及监听传入消息。...通过这些设计细节讨论,Gold 试图揭示出 iOS 18 可能倾向设计趋势。

    11710

    iOS14开发-入门知识

    开发语言 Swift 或者 Objective-C(本教程基于 Swift 5.x)。 开发者账号 个人 99 $/年 公司 99 $/年 企业 299 $/年 iOS系统四个层次 ?...iOS系统四个层次.png Core OS 是最为核心系统层,包括了内存管理,文件系统,硬件管理,电源管理,安全管理等内容。...UIView与UIViewController 初步印象 iOS 开发中,一个界面就是一个 UIViewController(视图控制器),界面上显示内容就是 UIView(视图)。...UIView iOS坐标系 二维坐标系 ? 坐标系.png z轴 获取屏幕大小 UIScreen.main.bounds UIView添加到UIViewControllerView ?...frame:相对父视图坐标和大小。 bounds:相对自身坐标和大小,所以 bounds x 和 y 永远为0。 center:相对父视图中心点坐标。

    2.9K40

    探讨 SwiftUI 中几个关键属性包装器

    访问我博客 www.fatbobman.com[1] 可以获得更好阅读体验以及最新更新内容。...它常用于简单 UI 组件状态管理,如开关状态、文本输入等。 如果数据不需要复杂视图共享,使用 @State 可以简化状态管理。...它允许 UI 元素直接修改数据,并反映这些数据变化。...注意事项 在 iOS 13 中,由于没有提供 @StateObject ,此时 @ObservedObject 是唯一选择,可能会因为无法保证实例存续期而产生 意想不到结果[12],为了避免类似问题...典型应用场景 当需要访问和响应如界面样式(暗模式/亮模式)、设备方向、字体大小等由系统或上层视图提供环境值时( 通常对应值类型)。

    32410

    声明式 UIKit 在有赞美业实践

    其方便布局方式,通过布局来接管视图大小和位置,使得各个视图节点得到了很好解耦,大大地提高了 UI 代码可移植性。...在 iOS 9 之后,UIKit 提供了 UIStackView 就是通过类似 FlexBox 形式,接管视图之间布局规则,减少对视图操作,来达到快速布局效果。...当位置和大小被布局接管后,视图之间依赖没有了,转化为添加视图顺序和各自属性,会发现声明式API在布局系统中能非常好地契合。...SwiftUI 由于 iOS 13 限制,以及生态不完善,也还没达到我们在项目中能直接上手使用程度,前期版本迭代也会因为其不稳定等因素可能会出现 API 大改。...基于上述问题,我们决定自己封装基于 Swift 声明式 UI 开发框架。

    1.4K30

    Ios常用第三方动画框架(三)

    VJDeviceSpecificMedia -如何根据设备选择不同尺寸图片 可以通过设置不同尺寸设备LaunchImage,来使得App适配这些设备,要是在不同不同尺寸设备上使用不同大小图片,则需要在代码中一一判断...Spring - Spring是一个Swift编写开源库,可简化Swift编写iOS动画。...Context-Menu.iOS - 可以为app菜单添加漂亮动画内容,可自定义icon,并可根据自己喜好设计单元格和布局。...LiquidLoader.swift - 液态加载动画轻量级 UI 组件。 15DaysofAnimationsinSwift - 15DaysofAnimationsinSwift动画。...fantastic-ios-animation.swift - 基于 UI 组件类别分类,且带精彩动画效果 iOS 组件库集合。 pop - facebook出品非常赞动画引擎。

    9.2K30

    唐巧iOS技术博客选摘

    SDWebImage缓存机制: 13....KZBootstrap:一个方便iOS工程初始化项目,它包含一些推荐工程设置和工具。 NewsFourApp:一个模仿网易4.0新UI框架开源项目。...《SizeClasss和AutoLayout教程4》:文章翻译自《iOS8 by tutorials》第一章,介绍了如何在不同 SizeClass 给同一个label设定不同字体大小和样式。...《提升 UITableView 性能-复杂页面的优化》:随着 App 用户界面的内容越来越丰富,再强手机可能都无法同时渲染复杂 UI 界面和保证流畅体验。...另外 SpriteKit 中 SKNode 也是继承自 UIResponder 类。因此 UIKit 中视图、控件、视图控制器,以及我们自定义视图视图控制器都有响应事件能力。

    3.3K60

    肘子 Swift 周报 #027 | 苹果助你成为一日“百万富翁”

    前一期内容|全部周报列表 原创 @State 魅影:一个多窗口模式下 SwiftUI 应用 Bug 分析[4] Fatbobman( 东坡肘子 )[5] 在本篇文章中,我们将探讨一个影响多窗口模式下...重构结果令 Ryan 非常满意,尽管应用大小有所增加,但构建性能和 SwiftUI 预览方面均获得了显著提升。他希望这篇文章能为其他开发者在进行类似重构时提供启示和帮助。...Syncing data with CloudKit in your iOS app using CKSyncEngine and Swift[16] Jordan Morgan[17] 虽然开发者使用...这篇文章是为那些希望提高应用用户体验并实现流畅数据同步 iOS 开发者提供宝贵资源。...CloudKit in your iOS app using CKSyncEngine and Swift: https://t.ly/y7jPa [17] Jordan Morgan: https

    13710

    我常用iOS开源库

    前言 OC库和Swift库相似功能很多 选择建议是:如果OC库在Swift中完全能用 就优先用OC库 原因是:Swift语言还是不太稳定 语言一更新 程序一大改 实在是太痛苦了 菜单相关 语言 项目名称...自定义弹出层 Swift DOAlertController 弹出层 Swift ZJNotice 消息提醒 其他UI 语言 项目名称 项目说明 ObjectC QMUI_iOS 腾讯开源UI集...股票K线图 ObjectC AFViewShaker 视图抖动提示 Swift Download-Indicator 圆形进度条 Swift ZJCheckbox CheckBox组件 Swift YXWaveView...波浪效果 功能型 语言 项目名称 项目说明 ObjectC TPKeyboardAvoiding 有文字输入时,能根据键盘是否弹出来调整自身显示内容位置 ObjectC WHC_KeyboardManager...Async GCD使用更方便 Swift SwiftDate 日期处理 Swift XCGLogger 日志 视图调试 语言 项目名称 项目说明 ObjectC FLEX 视图调试

    2.7K54

    iPadOS上启动黑屏翻车问题分析(二)

    iPadOS上启动黑屏翻车问题分析(一) 昨天我们说了旧项目在iOS 13下完全启动之后黑屏问题,然后紧跟问题通过UI图层分析方式一步步分析基本找到了问题根源---iPadOS底层以及操作思路转变啦...新时代--支持多窗口模式 在升级到iOS 13之后系统开始支持多窗口这个尤其是在iPadOS上尤为显著,这样你可以同时在一个设备屏幕上同时享受到至少两个App视图内容… AppDelegate...但是iOS 13之后这个规律被打破,将很多任务转移给了UIWindowScene 旧项目黑屏拯救 既然App声明周期在转移那么我们App代码也要跟着迁移处理 1 Info.plist更改...Swift来说由于一般情况下 ?...(13.0))attribute可知这个会在iOS13才会调用,我们做好版本兼容即可 ③ 新建SceneDelegate载体 OC版本 ?

    2K10

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

    刚刚结束苹果WWDC推出了一个对于开发者非常重要框架:SwiftUI。 SwiftUI是一个非常方便快速构建UI框架,与最新Xcode设计工具无缝协作,可为所有苹果设备构建UI。...而SwiftUI通过4种方式,解决了上述问题: 用一个新声明式UI结构,定义了布局外观和工作方式 更新UI预览会自动生成新Swift代码,反之,更改Swift代码也会更新UI预览 Swift任何绑定例如有效...让Xcode for iPad更上一层楼 开发者对Interface Builder抱怨不是一天两天了,它大大增加了分解视图块以及从视图控制器(view controller)使用视图工作量,导致出现体积臃肿视图控制器...此前,无论什么尺寸屏幕iPad,总是很难将Interface Builder大小放到iOS上。而拥有更简单,更快速,更安全SwiftUI为开发人员实现真正平台独立性迈出了一大步。...比如,它只支持Swift,你不能在Obj-C里使用SwiftUI;SwiftUI目前还不是很成熟,正在从事iOS开发程序员可能更应该继续使用Obj-C,直到SwiftUI足够成熟。

    5.4K20

    Ios常用第三方框架(二)

    Eureka.swift - Eureka 是 XLForm Swift 移植版本, 一个可以帮助开发者们快速构建 iOS 各种复杂表单库, 具有较高可扩展性, 方便自定制样式。...此项目应该只为演示或学习之用,没有服务器 -- swift。 Atlas-iOS - 快速在iOS里集成聊天功能,类似开源版本环信。...横向展示文本内容自定义cell - 可以横向展示文本内容自定义cell,根据文本无限滚动。...Sapporo - swift 单元格模型驱动集合视图管理器组件。又一个超实用“轮子”。...MGSwipeTableCell - 另一个常见于很多应用中UI组件,苹果应该考虑在标准iOS SDK中加入一些类似的内容。Swipeable表格cell是这个pod最佳描述,也是最好

    7.7K60

    Ask Apple 2022 与 SwiftUI 有关问答(下)

    因此,如果你正在创建一个视图来显示可滚动内容,并可能进行选择操作,那么在 iOS 和 macOS 上使用 List 将有最好体验。...在更复杂 UI 中,由于视图更新速度过快,性能( 至少在 macOS 上 )迅速下降。A:有不同策略。ObservableObject 是使视图视图层次结构失效( 引发重新计算 )单元。...自定义布局Q:我经常想根据列表中最长或最短文字来布置各种小组件。鉴于动态文本大小在应用程序运行时可能会发生变化,衡量给定字体文本大小最佳方法是什么?A:你好!我们新布局协议支持这个功能。...这意味着我们不能使用 LazyVStack,或任何其他将选择与详细视图绑定自定义视图。有扩展这个功能计划吗?A:在 iOS 16.1 中,你可以在侧边栏里放一个。...,但原因并非来自实际视图内容,而是由于 sheet、toolbar 等修饰器中代码造成

    14.8K30

    Swift 周报 第十二期

    Swift 周报在 GitHub 开源[1],欢迎提交 issue,投稿或推荐内容。目前计划每两周周一发布,欢迎志同道合朋友一起加入周报整理。...[13] 摘要: Apple 在 WWWDC 2022 上推出了 SwiftUI Charts,在 SwiftUI 视图中实现图表功能变得非常容易。...关于我们 Swift社区是由 Swift 爱好者共同维护公益组织,我们在国内以微信公众号运营为主,我们会分享以 Swift实战、SwiftUl、Swift基础为核心技术内容,也整理收集优秀学习资料...特别感谢 Swift社区 编辑部每一位编辑,感谢大家辛苦付出,为 Swift社区 提供优质内容,为 Swift 语言发展贡献自己力量。.../ [13]在 iOS 16 中使用 SwiftUI Charts 创建折线图: https://swdevnotes.com/swift/2022/create-a-line-chart-with-swiftui-charts-in-ios

    2.6K10

    老司机 iOS 周报 #77 | 2019-07-29

    Language APIs in iOS 13 @AidenRao:去年,Apple 推出了 NaturalLanguage 框架,用于分析自然语言文本并推导其特定于语言元数据。...iOS 13 上此框架更新了新功能 内置情感分析,对文本进行 -1.0 到 1.0 打分,确定一组文本是积极还是负面。 单词标记,单词应用标记系统,可用于模糊搜索,相似物品推荐系统。...Managing background tasks with the new Task Scheduler in iOS 13 @zvving:iOS 13 中苹果引入 BackgroundTasks...免费又好用 iOS UI 调试软件,Lookin 正式发布 @Parsifal:Lookin 是微信读书团队出品一款免费 UI 调试工具,功能像 Xcode 自带 UI Inspector 或者简版...除支持查看 UI 层级和视图信息外,还提供了方法监听功能,算比较实用一个特性。目前虽然不能与强大 Reveal 比较,但作为一款免费功能软件,还是也比较推荐有相关需求同学使用。

    95430

    架构之路 (五) —— VIPER架构模式(一)

    开始 首先看下主要内容: 在本教程中,您将了解如何在SwiftUI和Combine中使用VIPER体系结构模式,同时构建一个允许用户创建公路旅行iOS应用程序,来自翻译。...下面看下写作环境 Swift 5, iOS 13, Xcode 11 接着就是正文了。 VIPER架构模式是MVC或MVVM另一种选择。...在此过程中,您还将了解您iOS项目中SwiftUI和Combine。 打开启动项目。这包括一些代码,让你开始: 当你构建其他视图时,ContentView会启动它们。...演示者presenter关心是向UI提供数据和协调用户操作。...router处理从一个屏幕到另一个屏幕转换,设置下一个视图所需类。 在命令式UI范例中——换句话说,在UIKit中——路由router将负责显示视图控制器或激活segue。

    17.5K10
    领券