问题标签 [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.
objective-c - 在 Cocoa,UIResponder 中将消息从子视图发送到父视图?
我有所有这些触摸敏感的子视图,我想从子视图向超级视图发送一条消息,说用户选择了它,因此超级视图可以与控制器的其余部分进行通信。
我无法在子视图和控制器之间进行通信,子视图 >> 超级视图 >> 控制器
也许使用 UIResponder 来实现这个?
ios - 如何列出iOS中uiviewcontroller中的所有子视图?
我想列出 a 中的所有子视图UIViewController
。我试过self.view.subviews
了,但不是所有的子视图都列出来了,比如UITableViewCell
没有找到里面的子视图。任何的想法?
iphone - 带有孩子的 UIView 上的 TouchUpInside
我可能在这里遗漏了一些东西,但是...
我有UIView
几个孩子(几个UILabel
' 和UIImageView
)。当用户单击(点击)父级内的任何位置时,我需要捕捉一个事件-或其任何子级的UIView
可见部分)。UIView
这样做的最佳方法是什么?
ios - 打开文档时管理视图层次结构
我有一个可以打开特定类型文档的 IOS 应用程序。
我的应用程序通过以下方式接收文档:
当它尚未开始或通过时
当应用程序已经启动时。
当我的应用程序已经启动时,用户可能已经在我的应用程序中打开了许多视图。接下来当我的App被触发打开文档时,如何打开并导航到正确的视图(关闭旧的层次结构并打开新的层次结构以显示文档)?
我曾尝试使用:
使用 fromViewController = rootViewController(使用 UIApplication 和 UIWindow 检索)和 toViewController:我需要显示文档但没有成功的 ViewController。
任何想法如何在这个主题上取得进展?谢谢,
塞巴斯蒂安。
objective-c - 如何在 Superview 的视图中插入视图?(iOS)
我有下面的代码行......我将如何修改它以将子视图插入名为“foo”的超级视图的视图中?
objective-c - 如何在 Superview 的视图中插入视图?(iOS)
我有下面的代码行......我将如何修改它以将子视图“mySubview”插入到在超级视图中找到的名为“myView”的 UIView 中?
ios - 多个视图控制器共有的子视图无响应
我正在使用 aUIView
向用户显示繁忙/处理线索,并且加载视图中的组件没有响应用户触摸。让我详细说明我的问题。我有大约 3UIViewController
秒的时间,并根据情况显示其中之一View
。VieControllers
我使用以下代码更改当前视图
然后我有一个加载视图,它通常用于向用户显示忙碌/正在处理的 UI。我从 nib 文件以下列方式创建了加载视图
在应用程序委托中,我初始化加载视图并将其添加到主窗口
每当我需要显示加载/忙碌视图时,我只需像这样加载它
一切正常,但加载视图中的组件没有响应触摸。任何线索出了什么问题?
我刚刚意识到问题是由于线程问题。当用户开始下载任何文件时,我会显示此子视图。我之前的代码是直接开始下载
我现在使用后台线程从另一个方法调用此方法,如下所示
然后我在下载中添加runloop,比如
这工作正常,我的子视图是响应式的。真的花了很多时间。问题是有清晰的代码示例可以帮助在后台线程中运行下载,同时使 UI 响应。
objective-c - 使用 hitTest:withEvent 捕获其父视图框架之外的子视图的触摸:
我的问题:我有一个EditView
基本上占据整个应用程序框架的超级视图,以及一个MenuView
只占用底部 ~20% 的子视图,然后MenuView
包含它自己的子视图ButtonView
,它实际上位于MenuView
' 的边界之外(像这样:)ButtonView.frame.origin.y = -100
。
(注意:EditView
有其他不属于MenuView
的视图层次结构的子视图,但可能会影响答案。)
您可能已经知道这个问题:当ButtonView
在 的范围内MenuView
(或者,更具体地说,当我的触摸在MenuView
的范围内时),ButtonView
响应触摸事件。当我的触摸超出MenuView
' 范围(但仍在ButtonView
' 范围内)时, 不会收到任何触摸事件ButtonView
。
例子:
- (E) is
EditView
,所有视图的父级 - (M) is
MenuView
, EditView 的一个子视图 - (B) 是
ButtonView
,MenuView 的子视图
图表:
因为 (B) 在 (M) 的框架之外,所以 (B) 区域中的点击将永远不会发送到 (M) - 事实上, (M) 在这种情况下从不分析触摸,触摸被发送到层次结构中的下一个对象。
目标:我认为覆盖hitTest:withEvent:
可以解决这个问题,但我不明白如何。就我而言,应该在(我的“主”超级视图)hitTest:withEvent:
中被覆盖?EditView
还是应该在MenuView
未接收触摸的按钮的直接超级视图中覆盖它?还是我想错了?
如果这需要一个冗长的解释,一个好的在线资源会很有帮助——除了 Apple 的 UIView 文档,我没有说清楚。
谢谢!
objective-c - UIView clipToBounds 没有停止子视图接收父视图之外的触摸
我有两个 UIView。我正在使用一个来包含另一个,以便我可以将一个滑入另一个。我遇到了一个问题,即使子视图被剪辑到其父视图的边界,它仍然会接收触摸事件并阻止对其他底层视图的访问。
我有三个显示布局的屏幕截图。我已将父级着色为绿色,将子级着色为红色。
这个想法是用户单击“查看”并且子视图向上滑动。subView在默认位置时,UITabBar被覆盖,无法点击。您可以在底部出现红色视图的第一张图像中看到这一点。当 subView 移到顶部时,可以单击 UITabBar,因为它现在可见。在第三张图片中,我展示了在绿色 UIView 上启用 clipToBounds 的情况。
我启用了 clipToBounds,所以我不明白为什么 subView 会阻塞底层的 UITabBar。我对 clipToBounds 的理解完全错误吗?
ios5 - UIViewContentMode 模式指的是什么类型的内容?
根据 UIView 关于该contentMode
属性的官方文档:
这个定义中的内容是什么定义的?例如,它是子视图还是当我们为视图定义了背景颜色时。
我的第一个猜测是,它至少应该适用于视图中的子视图,但例如以下代码片段在使用 UIViewContentModeCenter
标签时不会给我预期的结果:
我刚刚设置了一个包含 greenView 的 redView。我还将 redview 的内容模式设置为UIViewContentModeCenter
- 为什么在我编写的代码中,当我更改其父级的框架时,greenView 没有居中?不应UIViewContentModeCenter
该做什么?
感谢您的澄清!
Ps:loadView
你可以在一个简单的视图控制器模板项目中轻松测试上面的代码。