问题标签 [viewwilltransitiontosize]

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 回答
31 浏览

swift - 界面过渡后有什么效果?

在我的项目中有 VC 和其他 VC 作为容器。我尝试使用viewWillTransitionToSize方法,但是在子 VC(在容器中)的转换接口之后无法通过触摸使用。

我不知道那是什么效果或问题。有人知道我的情况吗?

感谢所有答案!

0 投票
2 回答
666 浏览

ios - 如果我离开和返回视图控制器,为什么 viewWillTransition(to size:...) 不起作用?

我有一个UIView名为的子类myView,它应该在设备方向改变时重新配置自己。我正在使用中的viewWillTransition(to size: CGSize, with coordinator: UIViewControllerTransitionCoordinator)方法UIViewController来调用setUp()重新配置视图的方法。我遇到的问题是它在我第一次加载该特定视图控制器时工作,但如果我导航离开然后返回它,代码将不再工作。怎么了?代码如下:

如果我改用不推荐使用的方法didRotate(from fromInterfaceOrientation: UIInterfaceOrientation),则代码每次都能正常工作。

0 投票
1 回答
147 浏览

ios - Xamarin.iOS:如何确定 ViewWillTransitionToSize 中的状态栏高度

我有一个包含以下内容的视图:

  • a MKMapView, 在地图上显示一些项目
  • 嵌入UITableView在 a 中UIView,以显示列表中的项目

用户必须能够通过移动分隔符来显示地图或列表。

这很好用,但是在用户旋转屏幕后我遇到了一个问题:在这种情况下,列表不再正确显示。

列表的位置UIView通过指定它的上边距约束来设置的:我第一次知道状态栏的高度(带有UIApplication.SharedApplication.StatusBarFrame.Height)。

但是在旋转之后,我需要重新计算这个约束。为此,我尝试重新计算ViewWillTransitionToSize().

我的问题是在调用期间我没有得到预期值 ViewWillTransitionToSize():设置了“旧”StatusBarFrame.Height值。

我也尝试获取状态栏状态UIApplication.SharedApplication.StatusBarHidden但问题是一样的。

是否有另一种方法可以让我在旋转过程中获得正确的状态栏高度?

0 投票
1 回答
132 浏览

swift - 当您有多个视图控制器时如何检测到横向的转换

我有一个只有 4 个视图控制器的小应用程序,我想在用户切换到横向时更改布局。我想出了如何检查景观,但该功能存在于一个 viewController 类中,我不清楚如何让我的其他 viewController 在 vi​​ewWillTransition 触发时采取行动。我是否在每个视图控制器类中放置了该覆盖函数的一个版本来执行特定于它的事情?当我尝试在 segue 之后将覆盖放在两个类中时,它们都被解雇了,并且感觉不是“正确的做法”,所以我想问专家。

在应用程序启动时使用下面的代码,我设置了一个全局布尔值,以确定它是否处于横向状态,并使用 viewWillTransition 来检测更改。

所有的

0 投票
0 回答
46 浏览

ios - viewWillTransitionToSize 停止在 ios 中调用

在我的一个应用程序中,我正在使用 AVPlayerViewController 的子类。在这个类中,我使用 viewwillTransition 方法来调整旋转设备后的视图宽度和高度。但是我看到了奇怪的行为,即如果在像这样的几次尝试之后继续将方向从肖像更改为风景,然后将风景更改为肖像,这种方法本身不会触发/停止调用。

即使在关闭此视图后,剩余的屏幕也不会改变方向,这意味着 viewwillTransistion 也不会在其他类中触发,因此最终总方向更改支持消失了。

我可以知道我需要做些什么来解决这个问题,以及它发生的原因是什么。

0 投票
2 回答
392 浏览

ios - 大小(forChildContentContainer 容器:UIContentContainer,withParentContainerSize parentSize:CGSize)不起作用

苹果 说:

“容器视图控制器使用此方法返回其子视图控制器的大小。UIKit 调用该方法作为视图控制器的 viewWillTransition(to:with:) 方法的默认实现的一部分”

当我第一次启动程序时:

我得到完整的父 vc 视图的大小子视图控制器的视图不是 (100, 100)。那么重写它的真正意义是什么,如果我可以通过在(viewdidload 中的第一次加载)然后在preferredContentSizeDidChange 函数中重新定义子vc 视图的框架来响应特征变化?

在此处输入图像描述

0 投票
0 回答
58 浏览

ios - Is there a situation when traitCollectionDidChange is the only function that can not be substituted by willTransition?

Apple says that traitCollectionDidChange(... called when the iOS interface environment changes and willTransition(to:with:) Notifies the container that its trait collection changed. ok. but is there a code i must call strictly in traitCollectionDidChange and not in willTransition and not in viewWillTransition? Why do we need separate traitCollectionDidChange( function? is there condition where we can not substitute traitCollectionDidChange with willTransition???

0 投票
1 回答
337 浏览

swift - 用户滚动并在旋转后引用它后,如何获取 List 或 LazyVStack 中最后一个可见行的当前索引(id)?

我的 UI 中有一个 LazyVStack,设备旋转后显示的行与旋转前不同。甚至不靠近那些行。

在 SwiftUI 之前,我通过获取 viewWillTransition 中的最后一个可见行,然后在orientationDidChangeNotification 之后滚动到它来处理这个问题。

我在 SwiftUI 中没有找到任何方法来检测设备何时发生变化,以便我可以获得最后一行索引并在旋转后滚动到它。

是否有任何等效的 viewWillTransition 或我可以采用的任何策略来获得该功能?

0 投票
0 回答
45 浏览

ios - UICollectionView:旋转设备时保持单元格可见

我有一个包含数百个单元格的 UICollectionView。当我向下滚动到一组特定单元格并旋转设备时,以前可见的单元格大部分时间都变得不可见(contentOffset 错误)。

这是我为保持单元格可见所做的:

现在,如果在另一个 ViewController 处于活动状态时设备已旋转并且我返回到持有 UICollectionView 的 ViewController,则偏移量再次错误。这就是我所做的:

这有点工作,但对我来说似乎很老套。必须有一个更优雅的解决方案来实现这一点?