问题标签 [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.
ios - 关闭 uiimagepicker 时崩溃
这是 crashlytics 报告的一个问题。当我加载图像选择器并关闭时,我得到了这个(我假设)。我只得到过一次。但它与图像选择器或导航控制器有关。有人知道原因吗?
更新 图像选择器相机是这样加载的。
对于其他源类型,我使用以下代码。
ios - 在键盘上显示带有按钮的 UIView,例如在 Skype、Viber messengers(Swift、iOS)中
我想创建附件视图,放置在输入附件视图下,通过键盘,如在 Skype 应用程序或 Viber 中:
我已经在这里问过这样的问题,但是针对这个问题的建议解决方案并不那么优雅,因为当我将滚动视图拖到顶部时,我希望我的附件 UIView 用键盘向下移动(我使用 UIScrollViewKeyboardDismissModeInteractive)。
所以我创建了一个函数,找出视图,其中放置了键盘和我的自定义输入附件视图:
在它之后,我添加了一个自定义 UIView 并创建了一些约束:
这会在输入附件视图和键盘上方创建自定义 UIView,当我向上滚动时它会移动。但是当我想按下按钮时,我按下键盘上的一个键。
那么如何将此视图移动到 UIInputSetHostView 中的视图层次结构的顶部?
ios - 尽管 UIAlertController 在视图层次结构中,但呈现一个 ViewController
我想在presentViewController
出现时alertController
。
我想,如果用户现在按下 Ok 按钮,我想ViewController
在 PushNotification 上显示来自 AppDelegate 的消息。
我开始了解在UIAlertController
不同线程上呈现的 SO,因此希望ViewController
在用户按下 Ok 按钮并移至主线程后呈现如下:
但我收到警告:
这是因为视图控制器正在呈现警报控制器。其他时候它运行良好..我的 rootViewController 更改并移动到下一个屏幕..但是当有 UIAlertController 时,我收到警告,因为尝试呈现不在视图层次结构中的视图控制器
我究竟做错了什么?
ios - 在 iOS 应用程序中跟踪 UIWINdow 上的视图
当我们使用导航控制器作为窗口的根时,我们在该导航控制器上推送了多个控制器。假设 A 作为导航控制器 B 作为导航控制器的根 C 被推送到 B D 被推送到 C
那么窗口视图的层次结构是什么。是否像第一个窗口 -> A -> B -> C -> D;
或者它们在内存中但在窗口中只有一个 D?
ios - 设置 CGRect 的优先级 - Swift
使用我用 Swift 编写的 iOS 应用程序,我有一个视图,我在其中以编程方式显示一个占据整个视图空间的框架。我在故事板中有一个按钮插座。当视图加载时,按钮隐藏在框架后面。
如何在框架上显示按钮?
ios - UIView 的框架被随机覆盖
我的UIViews
设置方式有问题。
情况
我有一个视图,我将添加一些详细视图。这些详细视图是按顺序排列的,就像 a 的行一样UITableView
。这实际上是一个很好的比较。不同之处在于,在此视图中,我们不是上下滚动,而是横向滚动。
在这些详细视图中,屏幕上始终只有一个。当我添加第一个屏幕时,我还会加载下一个屏幕(向右)并将其绘制到屏幕外(再次向右)。当用户点击一个按钮时,我们会通过一个小动画进入下一个视图。最后一个可见视图滑出到左侧,第二个视图从右侧滑入。此时,我保留对现在左侧视图的引用并加载新的右侧视图(如果有的话)。我创建了一个协议,使任何其他对象成为我称之为SlidableDetailViewController
( SDVC
) 的数据源。
目前,我在数据源的didSet
. 在此设置期间,它会生成这三个帧(同样,左侧、中间和右侧)。
问题
当视图加载并首次出现在屏幕上时,中心视图的框架不是应有的,而是更小。第二个详细视图将正确显示。当我回到第一个时,框架也会更新和正确。
当我对其进行调试时,会正确计算和设置帧。当我闯入时viewWillAppear(_:)
,即使是视图的框架也是我所期望的。当我做同样的事情时,viewDidAppear(_:)
它已经缩小到这个没人想要的奇怪尺寸。我什么也没做。我只是用它们来调试这里的代码。
有人看到我在这里做错了吗?
我很确定这只是我的愚蠢错误,但我现在无法弄清楚。
代码示例更新
计算帧数:
加载下一个视图(加载上一个视图的工作方式几乎相同):
谢谢!
ios - Segue上的“谁的视图不在视图层次结构中”
我尝试在加载后(服务器发送命令继续)以编程方式从一个视图到另一个视图执行 segue,但它不会发生,因为“谁的视图不在视图层次结构中”。关于如何解决它的任何想法?
PS 我没有从 viewDidLoad() 方法执行任何 segues,所有这些都是从一个方法执行的,该方法也从这个类中的另一个方法调用(它读取从服务器发送的字典)。我也尝试像这样执行segues
就像这样(即使我知道这是错误的):
这些都不起作用,我仍然得到同样的警告。
ios - 想要放置在透明层上的按钮的深色
我的控制器上有一个透明层,上面有 imageview。现在,当我将按钮与图像放在一起时,它会显示透明度。虽然我将按钮上的 alpha 设置为 1,而且我也知道按钮始终是透明的,但我必须将按钮透明度设为零。我找不到解决方案。
尽快回复..
提前致谢。