问题标签 [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 回答
334 浏览

iphone - UIButton 在 iOS 6.0 上的 MFMessageComposeController 中为零

我正在尝试打印应用程序可见和隐藏窗口的视图层次结构。这是我在 MFMessageComposeViewController 子类中的一部分代码:

findButtonInView: 方法在当前 UIWindow 中递归搜索 UIButton。

这在使用 iOS4.3 和 iOS 5.1 进行测试时按预期工作(成功找到预期的 UIButton),但不适用于 iOS6。以下是两个测试的视图层次打印结果:

iOS 4.3:

iOS 6.0:

我的问题是如何在 UITextEffectsWindow 中找到所需的 UIButton?

似乎iOS6中的视图层次结构发生了某种变化......

我将不胜感激任何帮助。谢谢!

0 投票
1 回答
114 浏览

ios5 - 警告无法恢复先前选择的帧 - 无法以模态方式打开 UITabBarController

我正在尝试以模态方式呈现 tabBarController。我正在尝试通过以下代码来做到这一点:

当我尝试这样做时,我收到以下警告:

warning unable to restore previously selected frame

然后xcode向我展示了一些指向uiview(hierarchy)_makesubtreeperformselector严重崩溃的汇编语言/堆栈。

我认为问题在于我无法理解我所做的视图层次结构。我得到的是:

  1. 有一个视图控制器,可以说abc,它以模态方式表示一个名为tabsManager 的tabbarcontroller

  2. tabsManager 管理着两个名为 *"int_his"* 和 *"man_his"* 的 viewController。

  3. int_his中单击按钮时,我需要以模态方式打开另一个名为“summaryGraphManager”的 tabBarController 。

请有人告诉我如何正确呈现 *summaryGraphManager * 模态?谢谢。

0 投票
0 回答
50 浏览

cocoa-touch - 在将 UIView 添加到 superview 之前设置它的 alpha

我有两个视图,一个指定的超级视图和一个子视图。子视图的 alpha 值为 0,并且仅被初始化并没有被添加到任何父视图中。在我的子视图配置后,我声明了一个 UIView 动画块。有了这个,我在不到一秒的时间内将子视图的 alpha 更改为 1.0。

在我声明动画后,我将子视图添加到我的超级视图 X。

动画是否有可能不会发生——如果是,为什么?

0 投票
3 回答
606 浏览

objective-c - UIViewController 内的 UIView 还是更好的方法?

我对如何正确执行某种操作有疑问。

下图显示了一个 UIViewController,但视图的第二部分是一个自定义 UIView(带有个人资料图片、名称和显示视图按钮的那个)。使用以下代码分配子类 UIView:

问题当然是 UIView 上的按钮不能显示任何视图,因为只有 UIViewController 可以将另一个 ViewController 推送到窗口(对吗?)。

UIView 在应用程序的多个地方使用,需要轻松添加,并且在整个应用程序中具有相同的行为。

在我添加按钮之前效果很好,并且我开始认为我做错了,并且必须有更好的方法来做到这一点(也许将 UIView 更改为其他内容?)。

我在想我应该可以打电话:

然后以某种方式获取 ViewController,这样我就可以将另一个 ViewController 推送到视图层次结构中,但是不行。

有关如何正确执行此操作的任何建议和提示?

更新:我不知道如何从按钮推送另一个 UIViewController。

在 UIView 中按下按钮时,我应该在这个方法中做什么:

如何推送 GPProfileSocialFriendsViewController?

UIViewController 内的 UIView 的图像,UIView 上有一个按钮

0 投票
1 回答
819 浏览

ios - 如何检测哪个视图正在处理我的点击?

在我的视图层次结构底部的某个地方,我正在实现一个 touchesBegan 方法。它会触发除单指点击之外的所有触摸。这使我相信在层次结构中更高的某个地方,一个视图正在拦截/处理单指点击,但我一生都找不到该视图。有没有调试这个的好方法?

0 投票
1 回答
179 浏览

iphone - 如何在 iphone 中创建像我的照片应用程序这样的文件夹?

亲爱的朋友们,我想知道有没有可能在 iPhone中创建像MY PHOTO应用程序这样的文件夹?如果可能,我该如何实施?

现在我正在尝试创建。我在我的自定义 UIView 中使用 UIScrollView,例如为设置文件夹图像添加了一个 UIImageView。然后使用 for 循环我正在静态创建并在一列 UIView Down 中一一排列,但他们需要它将在两列中。我该如何实现?

还有我如何动态实现它?即为每个按钮操作一个一个地创建文件夹

0 投票
1 回答
542 浏览

ios - 如何在 iOS 中识别混合图层?

我正在触发 iOS 动画以在我的屏幕上移动一些元素,当我这样做时,屏幕底部的一个区域(远离我认为我正在执行操作的位置)会稍微改变阴影。当我在 iPhone 模拟器中打开“显示混合图层”时,很明显在我的动画开始时,一些东西开始覆盖该区域,但我不知道是什么。我添加到屏幕上的视图是一个复合视图,包括一个滚动视图和一个叠加层——其中的某些东西超出了它应该在的范围内,我不知道是什么。模拟器显然知道它是什么——它很高兴为我将它着色为红色作为混合层——但我无法让它告诉我什么图层正在混合,所以我可以修复它。我该怎么做呢?

ETA:如果我在插入的视图上打开 clipsToBounds,我的问题就会消失。但是我仍然想知道在尝试调试时如何识别分层视图。有办法吗?

0 投票
7 回答
11251 浏览

ios - 从子视图控制器转移到父视图控制器 - iOS

我有一个主要的 Actions View Controller,上面有一个“Review”按钮。查看按钮的功能是:

现在在评论页面上,我有一个按钮。在该按钮的操作上,我想切换回父视图控制器。应该显示它的视图。我尝试过以下代码,它要么暂停要么崩溃应用程序。

我什至尝试过:

我也阅读了与此问题相关的其他帖子,但找不到令人满意的答案。请帮忙!

0 投票
2 回答
286 浏览

ios - didReceiveMemoryWarning 和重建实例变量相等检查

我正在浏览我的 iOS 应用程序,使用“模拟内存警告”作为我的正义之锤,这会导致一些意想不到的问题(自然)。但这是让我难过的一个问题:对象似乎不再相等。

假设我的视图控制器(我们将命名它VCBob)有……</p>

  • 两个单独的自定义UIViews子视图(让我们命名这些视图viewAviewB
    • 每个都有自己UICollectionView暴露的属性collectionView(这些UICollectionViews用作VCBob他们的delegates
  • 一个UIButton,当按下时,将其他一些视图控制器(否则无关紧要)推到堆栈上

所以我点击了,UIButton然后出现了无关紧要的视图控制器。我触发了“模拟内存警告”选项,并被VCBob编程为在 中删除viewAviewB内部-didReceiveMemoryWarning,因为它们被完全重新创建并重新插入到视图层次结构中viewWillAppear(只要它们nil在 时viewWillAppear)。这是该实现VCBob

然后我点击导航栏中的后退按钮,然后VCBob重新开始游戏。这两个自定义UIViews仍然存在,并且它们各自UICollectionViews都加载了内容。当我点击UICollectionViewCells任一集合视图中的一个时,该-collectionView:didSelectItemAtIndexPath:方法被调用VCBob;到目前为止,一切都很好。该实现看起来像这样。

问题是什么都没有发生——没有任何记录。这两个if条件都评估为假。这是为什么?我似乎觉得我可能在做坏事didReceiveMemoryWarning。我不应该在那里处理视图吗?

0 投票
2 回答
5235 浏览

ios - viewDidAppear: 使用 presentViewController 时调用:animated:completion:

我有一个视图控制器,它查询网络服务是否应该显示插页式广告。如果是这样,则使用 presentViewController:animated:completion: 实例化和呈现另一个视图控制器。根据这个答案文档,我假设 viewDidAppear: 在关闭呈现的视图控制器(它自己做)时不会被调用。从概念上讲,无论如何对我来说,呈现视图控制器的视图永远不会从视图层次结构中删除,因此永远不需要“重新出现”。我显然错了。那么发生了什么?为什么我看到的与文档所说的不同?