问题标签 [view-hierarchy]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
xcode - Xcode 9 调试视图层次结构非常慢
在 Xcode 9 之前,Debug View Hierarchy 在大约两秒内完全创建了 UI 的可视交互表示。现在,在 Xcode 9 中,大约需要 15 秒。
有什么设置可以让它像以前一样快吗?
ios - 呈现新的视图控制器 - 视图不在窗口层次结构中
我收到一条警告:“警告:尝试显示不在窗口层次结构中的视图!”
我认为我有一个与通过 segue 呈现新视图控制器相关的逻辑问题。我正在尝试对位置进行地理编码并将坐标分配给结构中的变量(以及几个其他变量),然后我将其发送到一个新的控制器,该控制器在 mapView 上显示一个图钉。
通过断点和打印语句,似乎我的 prepareForSegue 函数被调用了两次,一次是在地理位置实际发生之前,一次是在调用下一个视图控制器之后,一次是在地理位置完成之后......但我相信它无法显示地理编码的位置,因为视图控制器已经存在......我总是在海洋中间的某个地方结束。
我已经尝试移动我的异步函数(performUIUpdatesOnMain)并将我的地图和注释显示功能移动到第二个视图控制器中的 viewDidAppear 中,但是这些解决方案不起作用。我究竟做错了什么?
以下是每个视图控制器的相关部分:
第一个视图控制器:
第二个视图控制器:
我正在传递的名为 locationData 的结构包含四个变量:纬度、经度和两个字符串。
谢谢。
android - 视图位于父级的最后位置,但仍被阻止
我想做的事
在 aBottomSheetDialogFragment
中,我想膨胀一个始终停留在屏幕底部的视图,无论它处于什么状态(折叠/展开)BottomSheetBehavior
。
我做了什么
在 的子类中BottomSheetDialogFragment
,我从 XML 扩展视图并将其添加为CoordinatorLayout
(它是BottomSheetDialogFragment
的父级的父级)的子级:
代码运行没有错误。
而当我使用 Layout Inspector 查看 View 层次结构时,视图结构也是正确的:
您也可以在此处下载布局检查器结果,并使用您自己的 Android Studio 打开它。
问题
但是,即使它作为 的最后一个孩子插入CoordinatorLayout
,它仍然被BottomSheetDialogFragment
.
当我慢慢向下滚动BottomSheetDialogFragemnt
(从折叠状态到隐藏状态)时,我终于可以看到我想要在片段后面充气的视图。
为什么会这样?
答案
正如@GoodDev 正确指出的那样,这是因为根视图(design_bottom_sheet)已被设置为 Z 平移BottomSheetDialog
。
这提供了一个重要信息 -不仅视图层次结构中的序列将决定其可见性,而且还决定其 Z 平移。
最好的方法是获取 Z 值design_bottom_sheet
并将其设置为底部栏布局。
ios - 在 Superview 中更改子视图的框架
我有一个 ViewController,它添加一个UIView
,SpeciesImageView
作为子视图viewDidLoad
并在viewWillLayoutSubviews
.
SpeciesImageView
没有 nib 文件。当我们在 viewDidLoad 中创建时,它会在类中speciesImageView
调用。initWithFrame
SpeciesImageView
这工作正常(横向和纵向),直到手机旋转。我尝试将约束设置为speciesImageView.frame.size.width
,但这不起作用,因为initWithFrame
在方向更改时不会调用,因此高度/宽度speciesImageView
保持不变。
另一方面, usingscreenRect
不会改变 的实际大小UIView
,它会改变它在超级视图中的大小。所以换句话说,我还没有找到改变实际speciesImageView
方向变化大小的方法。
而且由于我丢失的原因,当您将其旋转回原始位置时,它会完全混乱。
uinavigationcontroller - NavigationController 和 View Hierarchy 问题
我有 1 个(rootViewController)视图控制器,它嵌入在导航控制器中。然后我推了另一个视图控制器(secondViewController),它在标题视图中有搜索控制器。当我尝试搜索成为第一响应者(活动)时,我在终端中得到了这个:
警告:尝试在其视图不在窗口层次结构中显示“AppName.CustomSearchViewController: 0x7face0c20eb0>!
这只发生在低于 11 的 iOS 中。当我将第二个视图控制器嵌入导航控制器并以模态方式呈现时,一切都很好,但我需要完全推送。我该如何解决这个问题?
angular - 带有扩展模板的组件子选择器
我想在 Router 和 RouterModule 之外创建具有视图层次结构的组件
例子:
比较父.ts
comp-children.ts
组件-foo-bar.ts
我ComponentBar
希望这comp-children
将comp-parent
包含comp-children
在内,但仅comp-children
加载模板。
如何加载<router-outlet/>
已解析为模板的父comp-children
模板?
swift - 从 UIWindow 访问 UITransitionView
在我的应用程序中,我有一个 UINavigationController,身份验证后我运行执行 segue(推送替换)以导航到 UINavigationController,当应用程序进入后台时,我再次显示身份验证页面,我在一个名为 ScreenLocker 的分类中执行此操作
但是在n
时间的应用程序进入后台后,我有n
UINavigationControllers 和一个身份验证控制器(当我看到调试视图层次结构时我找到了它),知道显示 UINavigationController 如何删除身份验证视图控制器?
我当前的视图控制器是突出显示的视图控制器,它位于所有视图的前面,我想删除它并显示另一个视图。
animation - SwiftUI - 如何更改视图的层次位置?
这是一个不起作用的基本示例:
SwiftUI 无法弄清楚我认为第一个Color.green
和第二个Color.green
视图是同一个视图,所以当然动画只是将其中一个淡出,同时在新位置淡入另一个。我正在寻找向 SwiftUI 指示这些是相同视图并将其动画化到新位置的方法。我非常兴奋地发现了这个.id()
修饰符,因为我相信它会给我想要的效果:
不幸的是,这也不起作用。我对 SwiftUI 感到难以置信的兴奋,但在我看来,在保持视图标识的同时更改视图层次结构的能力非常重要。促使我考虑这一点的实际用例是,我有一些视图,我正在尝试为其创建粉丝动画。最简单的方法是让项目处于ZStack
一种状态,使它们都在彼此之上,然后让它们处于VStack
扇出状态,这样它们就可以垂直展开并且全部可见。从 a 更改为ZStack
aVStack
当然算作结构的更改,因此状态之间的所有连续性都丢失了,一切都只是交叉淡入淡出。有谁知道该怎么做?
list - SwiftUI UITableView 被告知在视图层次结构中布局其可见单元格和其他内容
我在视图中有一个列表(我们称之为视图 A),我通过 NavigationLink 从视图 A 推送视图 B,并将 CurrentSubjectValue 操作到初始视图 A。添加数据的那一刻,didChangd.send(value) 是派往查看 AI 收到警告,提示更新不属于视图的单元格。根据我之前的 UINavigationController 行为,视图 A 似乎已从不直观的窗口中删除。任何想法?
视图 A(主视图)
然后显示配置文件视图
然后我们可以添加一个新的配置文件
然后有提供者
请记住,多个视图共享相同的提供者主题。所以在添加新配置文件时会出现问题。
还有两个问题,一个是返回 mainView 时按钮不再起作用。此外,当模态呈现时,我还不知道如何手动返回。
ios - 警告:尝试在其视图不在窗口层次结构中的 ViewController 上呈现 ViewController(带有 UIAlertController)
我正在构建一个聊天应用程序,其中有两种类型的视图以模态方式呈现在聊天屏幕上:一个 UIAlertController 供用户选择要发送的媒体,以及一个弹出框,如果当前用户想要阻止/删除他们的用户重新发送消息。UIAlertController 运行良好,但阻止弹出窗口失败并显示以下警告:
“警告:尝试呈现不在窗口层次结构中的视图!”
这是演示流程:“收件箱”视图控制器呈现“聊天”视图控制器。这个“聊天”视图控制器是呈现模态 UIAlertController 和“块”视图控制器(也是模态,在当前上下文中)的控制器。这是我处理这两种模式视图的代码:
UIAlertController:
块视图控制器:
我知道之前在 iOS (Swift) 上已针对此问题提出过类似的问题,但它们解释了与使用根视图控制器相关的解决方案。我不想使用根视图控制器。由于 UIAlertViewController 位于此屏幕上并且假定在视图层次结构中具有优先级,因此出现此问题。如何将拒绝用户VC 添加到层次结构或使其具有更高的优先级?先感谢您!