问题标签 [viewdidlayoutsubviews]

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 投票
0 回答
634 浏览

objective-c - 在 iOS 7 中调用 viewDidLayoutSubviews

我正在尝试实现一个名为SCLAlerView的控件,它可以增强警报消息。但是在使用 iOS 7 时我遇到了一个问题(它在 iOS 8 上运行良好)。在纵向模式下,警报视图正确显示,但在横向模式下或从纵向模式旋转到横向模式时,警报视图显示错误(见图)。

人像模式 横向模式

深入代码我已经看到,在 iOS 7 上,旋转设备上没有调用 viewDidLayoutSubviews 方法。

有人在横向模式和 iOS 7 上使用过这个控件吗?知道发生了什么吗?

谢谢,

0 投票
3 回答
2651 浏览

swift - 标签更改时调用 viewDidLayoutSubviews (xcode) (swift)

我的代码中有一个标签、切换按钮和一个动画。当我按下切换按钮 -> 动画开始时,标签会发生变化。下面是我的代码示例。

每次我更改标签中的文本时都会调用 viewDidLayoutSubviews 。有没有办法在我每次更改标签时停止调用它?

0 投票
0 回答
205 浏览

ios - 当canDisplayBannerAds为YES时如何布局originalContentView?

我一直想开发文字游戏,所以我购买了一个应用程序模板——从源代码中学习。

在我将模板转换为 ARC 和 Storyboard 之后,我现在想开始在我的应用程序中使用 iAd。

self.canDisplayBannerAds = YES;但是,当我放入viewDidLoad主 VC(显示带有字母的游戏板)时,我注意到该方法viewDidLayoutSubviews只调用了一次:

结果是带有字母的游戏板没有正确调整大小并且没有占据整个宽度(这里是全屏截图):

Xcode 截图

当我删除该行或将其更改为 时NO, thenviewDidLayoutSubviews被调用多次(但令人惊讶地打印相同的值min=375)。

我知道我的 VC 的主视图被存储到self.originalContentView但为什么不viewDidLayoutSubviews被调用(正确布局 VC 所需的多次)?

我在调试器中看了很多,也在 SO 上进行了搜索(只找到了 2 个类似的问题) - 请在此处向我推荐一个解决方法。

iAd 解决方案如何运作?iAd不应该调用一些方法来告诉原始视图重新布局自己吗?

0 投票
1 回答
564 浏览

ios - 当在 viewDidLayoutSubviews 应用程序中设置新的 tableview 框架在 iOS 7 中崩溃

此方法在 iOS 8 中完美运行,但在 iOS 7 中崩溃,这种崩溃无处可去。

0 投票
2 回答
246 浏览

ios - iOS:由于在运行时在 CellForRowAtIndexPath 中设置约束,TableView 无法平滑滚动

我正在使用 StoryBoard 和使用 Autolayout ,我在运行时为自定义单元格设置了约束。我还在ViewDidLayoutSubviews中设置了约束以处理设备方向。所以这需要时间来配置单元格并且我的单元格不能平滑滚动。有人可以帮我解决这个问题吗?如果我必须在运行时不设置约束,那么我应该在哪里设置它们?希望我很清楚。提前致谢

0 投票
2 回答
1507 浏览

ios - iOS 设备快速旋转 180 度导致摄像头倒置

我已经实现了下面的代码来改变AVCaptureVideoSession基于的方向UIInterfaceOrientation

这段代码几乎可以完美运行。但是,出现的一个问题是,如果您将 iOS 设备快速旋转 180 度,相机将显示为上下颠倒。

这是旋转前的相机视图:

在此处输入图像描述

这是旋转后的样子:

在此处输入图像描述

此外,这是我的实现viewDidLayoutSubviews

有谁知道为什么发生这种 180 度旋转时相机视图会颠倒?

0 投票
1 回答
872 浏览

ios - UIViewController 的子视图在什么时候开始明确布局?

我的代码中有很多地方需要根据UIViewController. 例如,我在 nib 中有一个视图,然后我在代码中捕获它并用于为另一层创建蒙版,但我需要等到蒙版视图及其子视图具有正确的大小才能这样做。

我发现,虽然很hacky,但我可以通过创建一个每次viewDidLayoutSubviews调用时递增的计数器来实现这一点,并在第二次调用它时触发我希望执行的代码 - 由于某种原因,大多数视图都有尚未正确布置自己,直到viewDidLayoutSubviews第二次被召唤。

就像我说的,这看起来很老套,而且 iOS 更新很有可能会破坏我的代码。有没有人有更好的方法来做到这一点?

0 投票
1 回答
309 浏览

objective-c - 来自viewDidLayoutSubviews的PFLoginViewController无限循环?

有没有人在使用 PFLoginViewController(来自 ParseUI 框架)的 iOS 9 中遇到问题?

在 iOS 8 中,根据 Parse 文档,我在 viewDidLayoutSubviews 中为 LoginViewController 设置了自定义字段,但是在 iOS 9 中,它进入了无限循环并且不会退出 viewDidLayoutSubviews 方法。

更新:我已将其缩小到罪魁祸首: addSubview 是导致无限循环的行。但同样,它只会在 iOS9 中导致它......通过?

更新 2:对于所有 ParseUI 用户,答案(感谢以下受访者的想法)是,尽管它在 iOS 8 中使用该 Parse,但您不能再在 viewDidLayoutSubviews 中向 PFLoginViewController 添加背景图像,如先前记录的. 同样在 viewDidLoad 处将背景添加到 PFLoginViewController.loginView 也不起作用。

解决方案:将添加任何子视图移动到viewDidLoad方法中,不添加子视图到PFLoginViewController.loginView;而是将子视图直接添加到 PFLoginViewController.view

0 投票
0 回答
78 浏览

ios - 在演示过程中尝试演示 MPMoviePlayerViewController

我收到标题中描述的警告,我发现这是viewDidLayoutSubviews多次调用的结果。

我也尝试过使用上面的代码,(void) loadView但结果是一样的。我也不想错过故事板中的一些按钮。谁能帮我只拥有一个 MPMoviePlayerViewController?

提前致谢!

0 投票
1 回答
220 浏览

ios - 无法取消隐藏除 ViewDidLayoutSubviews() 之外的按钮

我有一个UIButton应该只是偶尔出现的。在viewDidLayoutSubviews我做了以下事情:

但是,当我尝试clearButtonOutlet.hidden = false在其他地方做时,该按钮不会再次出现。

起初我以为我的约束可能被搞砸了,但这使得按钮重新出现:

为什么我不能让按钮在其他地方重新出现?

编辑1:我试图让按钮重新出现: