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

前置条件失败:在从iOS 13.4开始的SwiftUI中使用GeometryReader时输入索引无效

在从iOS 13.4开始的SwiftUI中使用GeometryReader时,输入索引无效可能是由于以下前置条件失败导致的:

  1. SwiftUI版本不兼容:请确保你的iOS设备运行的是iOS 13.4及以上版本,并且你的SwiftUI框架版本也是13.4及以上。如果你的设备或框架版本过低,可能会导致GeometryReader中的输入索引无效。
  2. 错误的使用方式:GeometryReader是一个用于获取父视图的几何信息的容器视图,它通常用于在布局中获取父视图的大小、位置等信息。如果你在使用GeometryReader时尝试使用输入索引,可能是因为你错误地将其用于不支持索引的上下文中。请确保你正确地使用GeometryReader,并遵循其文档中的指导。
  3. 视图层次结构问题:如果你的视图层次结构中存在嵌套的GeometryReader,可能会导致输入索引无效。在这种情况下,建议重新评估你的视图层次结构,并确保GeometryReader的使用方式正确。

总结起来,要解决在从iOS 13.4开始的SwiftUI中使用GeometryReader时输入索引无效的问题,你可以检查以下几个方面:

  1. 确保你的设备和框架版本符合要求。
  2. 确保正确使用GeometryReader,并遵循其文档中的指导。
  3. 检查视图层次结构,避免嵌套的GeometryReader导致的问题。

对于更具体的问题和解决方案,建议参考苹果官方文档和开发者社区中的讨论。

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

相关·内容

解析SwiftUI布局细节(二)循环轮播+复杂布局

NavigationView + NavigationLink 界面跳转,在苹果给 SwiftUI 使用例子中就是这样写,当然我们在正常使用这样写也没啥问题,那我们界面跳转问题是什么呢?...有一个还得说明一下,GeometryReader 改变了它显示内容方式。在 iOS 13.5 ,内容放置方式为 .center。在 iOS 14.0 则为:.topLeading。...= .zero /// 当前显示位置索引, /// 这是实际数据1就是数据没有被处理之前0位置图片 /// 所以这里默认从1开始 @State var currentIndex...在 iOS 14.0 则为:.topLeading GeometryReader(content: { geometry in HStack...spring():.none) /// 监听当前索引变化,最开始初始化为0是不监听, .onChange(of: currentIndex, perform

12K20
  • GeometryReader :好东西还是坏东西?

    GeometryReaderSwiftUI 诞生之初就存在,它在许多场景扮演着重要角色。然而,从一开始就有开发者对其持负面态度,认为应尽量避免使用。...在这个演示,Image 正好满足了之前提出充满空间且原点对齐要求,因此直接使用 GeometryReader 作为布局容器是完全没有问题。...在一些复杂布局场景,或者在某些设备或系统版本,布局可能需要经过几轮协商才能获得最终稳定结果,尤其是当视图需要依赖 GeometryReader 提供几何信息来重新确定自己位置和尺寸。...然而,这并不意味着在使用 GeometryReader 没有需要注意事项。...不过,大家是否想过,其实在很多场景GeometryReader 本来就并非最优解。与其说避免使用,到不如说用更加 SwiftUI 方式来进行布局。

    57470

    SwiftUI 之 HStack 和 VStack 切换

    GeometryReader GeometryReader 能实现吗?...使用布局协议 虽然我们最后已经用了非常棒解决方案,可以在所有支持 SwiftUI iOS 版本中使用,但也让我们来探索一下在 iOS 16 引入一些新布局工具(在写这篇文章,它作为...Xcode 14 一部分仍在测试阶段) 其中一个工具是新 Layout 协议,它既能让我们创建完整自定义布局,直接集成到 SwiftUI 布局系统,同时也提供给我们一种更丝滑更动画方式在各种布局之间动态切换...,因为当 HStack 和 VStack 内容类型是 EmptyView ,它们都符合新 Layout 协议(当内容为空就是这种情况),让我们来看一下SwiftUI 公共接口 struct...这样做会令动画更流畅,例如在切换设备方向,我们也有可能在执行此类更改时获得小幅性能提升(因为 SwiftUI 总是在其视图层次结构为静态尽可能表现最佳) 选择合适视图 但我们还没有结束,因为

    2.8K10

    掌握 SwiftUI Safe Area

    SwiftUI ,开发者通常只有在需要获取 StatusBar + NavBar 高度或 HomeIndeicator + TabBar 高度才会使用到 safeAreaInsets 。...使用 GeometryReader 获取 GeometryProxy 提供了 safeAreaInsets 属性,开发者可以通过 GeometryReader 获取视图 safeAreaInsets。...13 提供 edgesIgnoringSafeArea 修饰器已经在 iOS 14.5 弃用。...从 iOS 14 开始SwiftUI 计算视图安全区域,将软键盘在屏幕上覆盖区域(iPadOS 下,将软键盘缩小后键盘覆盖区域将被忽略)也一并进行考虑。...safeAreaInsetList2 遗憾是,在 iOS 15 之前,SwiftUI 并没有提供调整视图安全区手段,如果我们想通过 SwiftUI 手段创建一个自定义 Tabbar ,列表中最后内容将被

    7.6K31

    如何在 SwiftUI 创建条形图

    系列文章 如何在 SwiftUI 创建条形图 SwiftUI 水平条形图 在 iOS 16 中用 SwiftUI Charts 创建一个折线图 在 iOS16 中用 SwiftUI 图表定制一个线图...在 Swift 图表中使用 Foudation 库测量类型 开始图表布局 SwiftUI 对探索不同布局和预览实时视图结果是很友好。...GeometryReader 被用来确定条形图可用高度。数据最大值得到后并传递给每个 BarView。...SwiftUI 是一个很好平台,用于创建视图和快速重构独立子视图。在 SwiftUI 构建条形图需要做一些工作,随着使用数据来试用条形图,可以确定更多定制化。...使用 GeometryReader 可以创建适应更多可用环境条形图。在这篇文章,我们创建了一个简单条形图,有数值,下面有标签,还有图表标题,下一步就是分离出 x 轴和 y 轴。 - EOF -

    5.2K10

    SwiftUI geometryGroup() 指南:从原理到实践

    本文将介绍 geometryGroup() 概念、用法,以及在低版本 SwiftUI ,在不使用 geometryGroup() 情况下如何处理异常。...当 SwiftUI 在 overlay 布局黄色圆形(topLeading),此时红色矩形尺寸(尽管仍在以动画形式逐渐扩大)已经是调整后 300 x 300。...16 开始出现,而在更低版本,文字位置是正常。...对于 iOS 16,在文字变化较多且较大情况下,应尽量避免在父视图几何信息调整切换文字内容。 总结 在本文中,我们深入探讨了 SwiftUI geometryGroup() 重要性和实用性。...在实际开发,尤其是面对复杂动画和布局场景,理解并正确使用 geometryGroup() 是至关重要。 geometryGroup() 为我们提供了一个避免在个别情况下出现布局异常能力。

    27210

    SwiftUI 实现视图居中若干种方法

    .background(.red) Spacer() // 让 VStack 充满可用空间}image-20220829154641251从 SwiftUI 3.0 开始,在使用...().fill(.clear)在使用 SwiftUI 进行开发过程,Color、Rectangle 等经常被用来实现对容器等分操作。...请阅读 SwiftUI 布局 —— 对齐[5] ,了解更多有关 ZStack、overlay、background 对齐机制Geometry虽然有些大材小用,但当我们需要获取更多有关视图信息GeometryReader...不过除非矩形尺寸明确,否则里外都需要使用 GeometryReader ,实现将过于烦琐。总结本文选取了一些有代表性解决方法,随着 SwiftUI 功能不断增强,会有越来越多手段可供使用。...我为本文这种通过多种方法来解决一个问题方式添加了【小题大作】标签,目前使用该便签文章还有:在 Core Data 查询和使用 count 若干方法[6]、在 SwiftUI 视图中打开 URL

    6.7K40

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

    一致性:这意味着Swift和Objective-C之间不会再看到奇怪错误,或者非常旧API与新API混合 简洁:可以节省10%-20%代码量 如果你刚刚接触SwiftUI,刚开始你可能需要适应一下...比如在使用源码控制就很麻烦,会导致代码和可视化布局之间移动变得非常困难;使用动作和outlets过于依赖flaky系统连接。...而SwiftUI通过4种方式,解决了上述问题: 用一个新声明式UI结构,定义了布局外观和工作方式 更新UI预览会自动生成新Swift代码,反之,更改Swift代码也会更新UI预览 Swift任何绑定例如有效...outlets和操作,都会在编译进行检查,因此在运行时不会出现UI失败风险 虽然背后使用来自UIKit和AppKit控件,但SwiftUI凌驾于二者之上,能够有效地使底层UI框架成为一个实现细节,...比如,它只支持Swift,你不能在Obj-C里使用SwiftUISwiftUI目前还不是很成熟,正在从iOS开发程序员可能更应该继续使用Obj-C,直到SwiftUI足够成熟。

    5.4K20

    掌握 ViewThatFits

    iOS 16 SwiftUI 增加了一个新自适应布局容器 ViewThatFits。正如其名称所示,它作用是在给定多个视图中找出最合适视图并使用。...SwiftUI 提供了两个版本 fixedSize ,我们当前使用版本要求视图在水平和垂直两个轴向上都使用理想尺寸,而另一个版本允许我们对单个轴向进行限定。...在 SwiftUI ,我们可以通过 frame 来修改视图在理想状态下呈现。...选择合适长度文本 这也是 ViewThatFits 最常被使用场景,从提供一组文本,找出最适合当前空间那个。...但是,与任何强大工具一样,能否发挥期作用来自于深入理解其使用方式和限制。 在本文中,我们对 SwiftUI ViewThatFits 容器进行了深入探索。

    18710

    使用 SwiftUI 创建一个灵活选择器

    使用 UIKit ,我总是将这种类型视图实现为具有特定 UICollectionViewFlowLayout UICollectionView。但在 SwiftUI 该如何实现呢?...首先,我需要一个函数来计算并返回输入数据所有宽度。我通过将所有输入值映射到元组,其中包含输入值和自身宽度来完成。...在映射中,我使用 reduce 函数来总结与给定输入值相关联所有宽度(文本宽度、边框宽度、文本填充和间距)。...VStack 高度是根据两个值计算输入数据任何项目的高度(类似于宽度计算,通过使用 reduce 函数,总结与项目相关所有高度) 将显示在 VStack 行数 private func...此外,在 VStack 底部,我们设置一个 frame,其中宽度取自 GeometryReader,高度则由先前创建函数计算。 现在 FlexiblePicker 已经完成,可以使用了!

    27920

    SwiftUI 方式进行布局

    在上面的代码,由于两个视图使用了同样动画曲线设定,因此,在移动并不会出现分离情况。...有关建议尺寸、需求尺寸等内容,请参阅 SwiftUI 布局 —— 尺寸( 上 )[5] 一文 三、NameSpace 从 3.0 版本( iOS 15 )开始SwiftUI 提供了新 NameSpace...scrollDisabled( 则让我们可以在 iOS 16+ 屏蔽 ScrollView 滚动手势 )。...五、LayoutPriority 在 SwiftUI ,设置视图优先级( 使用 layoutPriority )是一个好用但并不常用功能。...视图二同理 六、再战 AlignmentGuide 在上面使用 AlignmentGuide 例子,我们通过 GeometryReader 获取了视图二高度信息,并通过设置显式对齐指南来完成了移动

    3.2K00

    SwiftUI 方式进行布局

    在上面的代码,由于两个视图使用了同样动画曲线设定,因此,在移动并不会出现分离情况。...有关建议尺寸、需求尺寸等内容,请参阅 SwiftUI 布局 —— 尺寸( 上 ) 一文 三、NameSpace 从 3.0 版本( iOS 15 )开始SwiftUI 提供了新 NameSpace...scrollDisabled( 则让我们可以在 iOS 16+ 屏蔽 ScrollView 滚动手势 )。...五、LayoutPriority 在 SwiftUI ,设置视图优先级( 使用 layoutPriority )是一个好用但并不常用功能。...视图二同理 六、再战 AlignmentGuide 在上面使用 AlignmentGuide 例子,我们通过 GeometryReader 获取了视图二高度信息,并通过设置显式对齐指南来完成了移动

    4.8K80

    如何判断 ScrollView、List 是否正在滚动

    比如在 SwipeCell[3] ,需要在可滚动组件开始滚动,自动关闭已经打开侧滑菜单。遗憾是,SwiftUI 并没有提供这方面的 API 。...本文将介绍几种在 SwiftUI 获取当前滚动状态方法,每种方法都有各自优势和局限性。...),调用此方法在 SwiftUI ,很多视图控件是对 UIKit( AppKit )控件二次包装。...iOS 系统在 macOS 下 eventTracking 模式,该方案表现并不理想屏幕只能有一个可滚动控件由于任意可滚动控件滚动,都会导致主线程 Runloop 切换至 tracing...判断准确度没有前两种方式高当可滚动组件内容出现了非滚动引起尺寸或位置变化( 例如 List 某个视图尺寸发生了动态变化 ),本方式会误判断为发生了滚动,但在视图变化结束后,状态会马上恢复到滚动结束滚动开始

    3.7K40

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

    创建与 IM 应用类似的底部文字输入栏Q:你好,我问题是关于 TextField 。...阅读 SwiftUI 动画机制[8] 一文,了解更多有关动画内容。自适应高度 SheetQ:如何在 iOS16 呈现与动态内容高度相匹配 Sheet?...在 iOS 16 ,通过 presentationDetents 同 GeometryReader 配合,可以创建与内容高度一致 Sheet。此处查看 完整代码[9] 。...但是从一个文本字段到下一个文本字段聚焦感觉不够流畅,而且每当我在一个文本字段输入一个字母,我 CPU 使用率似乎会飙升到 70% — 100%。...A:如果你在 iOS使用 UITextField 遇到性能问题,你可以尝试避免每个视图都是 UITextField ,默认渲染为 Text ,当文本被点击动态切换为 UITextField 。

    12.2K20

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

    ,只提取你需要属性,并依靠 SwiftUI equality 检查来提前中止无效计算苹果工程师给出答案与 避免 SwiftUI 视图重复计算[5] 一文很多建议都一致。...但是,此转换仅在文本字段完成编辑才会发生,并且不会阻止输入非数字字符。目前 SwiftUI 没有 API 可以限制用户在字段输入字符。...Too complex to type checkQ:我在 iOS 14 SwiftUI 遇到一个问题,我试图有条件地显示 3 个符合 Shape 协议对象一个。...这是一个在多个版本中都出现过奇怪问题。在 SwiftUI 早期版本,当在 iOS使用系统中文输入,很容易触发这种情况。但后期逐步得到了修复。...在 SwiftUI ,有一个从第一版开始就存在但尚未公开SwiftUI 实现滚动容器 —— _ScrollView 。

    14.8K30
    领券