问题标签 [uiview-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.

0 投票
1 回答
1492 浏览

ios - 根视图控制器的视图不在窗口层次结构中

我编写了一个登录页面,在我的应用程序委托(在方法 application:didFinishLaunchingWithOptions:) 中设置为我的根视图控制器

其中 vc 是我的 HomeVC 的实例化。
此视图正确加载。我可以输入登录所需的所有数据,但只要我尝试加载另一个视图,我就会得到

我尝试了一些小技巧,以确保我使用以下代码获得了最顶层的视图控制器:

但是,正如我所怀疑的,它只返回了当前的视图控制器,它也是根视图控制器。它甚至从未进入 while 循环。

我无法理解我试图调用的视图控制器如何不在层次结构中,因为它不仅显示正确,而且还是层次结构上的唯一视图。

编辑 1:我将包括 AppDelegate 应用程序:didFinishLaunchingWithOptions: 方法的部分,我在其中创建和添加 VC 和 Navigation VC。

0 投票
1 回答
54 浏览

ios - 将一个视图直接放在另一个相同大小的视图之上

好的,首先我要实现的目标:

顶部带有交互式文本的背景视频。

此文本是在我编写的代码中生成的,并在 UIView 中呈现。视频正在 AVPlayerController 中播放,嵌入在 UIContainerView 中。

我最初的计划是将 UIView 的宽度、高度和顶部设置为等于 UIContainerView 的,但这似乎给我带来了一大堆“无法同时满足约束”错误。

我是否以正确的方式解决这个问题?有没有人尝试做类似的事情并成功了?

谢谢,乔

0 投票
2 回答
96 浏览

ios - 在 UIView 层次结构中选择自定义视图

有一种情况应该选择所有自定义视图(不是系统视图类型,如 UILabel 或 UIButton 等),如 XXButton 或 XXView。如何迭代 UIView 的子视图以找出所有自定义视图?也就是说,未知类自定义视图和苹果系统视图如何区分?

0 投票
1 回答
692 浏览

objective-c - 如何从自定义 UIButton 类显示视图控制器?

我有以下视图层次结构:导航控制器,在其中我推送了另一个视图控制器,其中包含 UITableView 和单元格中的自定义 UIButtons。我有另一个视图控制器(MyCustomViewController2),我想用动画显示所有这些东西。

但我对这种层次结构感到困惑,我不知道如何覆盖- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event自定义 UIButton 类中的方法。我到目前为止的代码是:

但这太糟糕了!而且我没有任何动画,我应该删除它以删除。接下来我可以尝试什么?

0 投票
0 回答
41 浏览

ios - 在应用程序进入前台时隐藏检查条件的按钮

我必须通过检查两个特定视图控制器的视图来隐藏一个按钮,该视图是当前视图的后代。这是在应用程序进入前台时完成的。代码:

问题是,尽管进入前台时呈现的视图是 hrViewController.view 或 reportViewController.view,但控件到达了 if 条件内部并且隐藏了我的按钮。为什么会这样?

0 投票
1 回答
75 浏览

ios - 视图卡在 MapView 后面

我已经尽一切努力让我的视图出现在地图视图上(见下面的代码),但它仍然不会出现。我不知道该怎么办。这是 0.5 alpha 的 mapView

当我使用 z 位置时,视图会出现,但它不允许任何触摸操作(它是自定义分段控件)。

0 投票
0 回答
454 浏览

ios - 从 Objective-C 获取对 react-native 创建的图像视图的引用

如何获得对来自 Objective-C 的 react-native 创建的图像视图之一的引用。

我有一个使用以下 js 代码创建的基本反应原生应用程序

我想从 Objective-c 端访问该组件(RCTImageView)。我将如何获得对此的参考?

这就是我的 AppDelegate.m 的样子

ps:视图层次结构的参考 在此处输入图像描述

0 投票
3 回答
9740 浏览

ios - 如何以编程方式将视图设置为正面/背面?

我正在开发一个使用UIViews 作为文本背景的应用程序。我已经将文本后面的观点放在了文本中,storyboard但由于某种原因,有些观点似乎仍然在文本前面。有没有办法以编程方式将这些视图发送到后面?这是我在说什么的截图图片

0 投票
2 回答
368 浏览

ios - 如何获取层次结构中的哪个视图被触摸?

我有一个 MyUView 类型的 UIview V,其中包含一个名为 S1 的 stackView。S 堆栈包含一个名为 NM 的堆栈视图,其中包含一个名为 T 的 UITextField 和另一个名为 M 的堆栈视图,其包含一个名为 L 的 UILabel。为了简单起见,我使用字母来命名控件。

视图的层次结构如下:

    • S1
      • 纳米
          • 大号

为了识别长按手势,我在视图 V 中添加了一个名为 lprecognizer 的 LongPressGestureRecognizer。我想要在视图上检测 longPress 手势(以及可能的其他手势),但是,如果手势是 longpress 手势,我只想在 uitextfield T 是触摸视图时才执行特定操作。

我在 MyUView 中实现了以下委托方法:

这不起作用(即使我触摸了文本字段),因为识别为被触摸手势的视图是 Stack S1,它是视图 V 的子视图数组中的第一个也是唯一一个视图(请记住前面提到的层次结构)。

我的问题是:

如果有任何简单的方法可以知道某个感兴趣的视图(例如 UITextField)是否在 gicen 触摸区域中,即使这个感兴趣的视图在视图层次结构中很深?

我想避免递归搜索视图层次结构的想法。

0 投票
1 回答
69 浏览

ios - iOS 视图控制器是否有可能/预期寿命超过其视图?

在我正在开发的应用程序中,我们有时会在网络请求的完成部分遇到随机崩溃。

事件链如下:

  1. 添加一个视图控制器作为子 VC。父母注册为孩子的代表。
  2. 孩子调用委托方法来调用一些API。
  3. 父级在主队列上获取响应 JSON 数据。
  4. 父级根据接收到的数据更新子级中的视图作为完成。

然而,在最后一部分,崩溃是随机发生的。它很难重现,Crashlytics 显示崩溃的发生是由于引用了一个 nil 变量,即子视图控制器的视图层次结构中的一个子视图。此时父母还活着。

不是在调用子视图控制器的函数时崩溃,而是在引用函数内部的视图时崩溃,所以我唯一的猜测是视图在子视图控制器之前被释放。

所以我的问题是,正如标题所说,视图控制器是否有可能或预期会超过它的视图?

这是文件中所说的UIViewController

视图控制器是其视图及其创建的任何子视图的唯一所有者。它负责创建这些视图并在适当的时候放弃它们的所有权,例如当视图控制器本身被释放时。

我一直认为视图被释放是因为视图控制器的引用计数为 0。

更新而不是呈现,我将它添加为子视图控制器。添加了对所发生情况的更详细说明。