将 UIViewController 子视图重置回初始位置

Posted

技术标签:

【中文标题】将 UIViewController 子视图重置回初始位置【英文标题】:Resetting UIViewController subviews back to the initial positions 【发布时间】:2013-11-20 17:17:12 【问题描述】:

我有一个使用 xib 文件的 UIViewController。在这个 xib 文件中,我有 6 个可移动按钮。在运行时,用户可以在屏幕上移动按钮。但最终屏幕将需要重置回其初始状态,并且所有按钮都应回到 xib 文件中预定义的原始位置。

关闭控制器并返回它可以正常工作,但是当我不关闭控制器时如何解决此问题?

我已经尝试过 setNeedsDisplay,但不起作用。

谢谢!

【问题讨论】:

【参考方案1】:

您可以在viewDidLoad 方法中保存每个按钮的中心或原点,然后在需要时重置它们。

CGPoint center = myButton.center;
...
myButton.center = center;

【讨论】:

【参考方案2】:

我认为您应该保存按钮的原始位置,当您重置屏幕时,您必须将按钮位置更改为原始状态。

我不确定这是否有效,但您可以尝试使用 CGAffineTransformIdentity,它应该会重置您的按钮位置。

buton.transform = CGAffineTransformIdentity;

【讨论】:

以上是关于将 UIViewController 子视图重置回初始位置的主要内容,如果未能解决你的问题,请参考以下文章

UIView:将 UIViewController 的视图添加为子视图并将其删除

如何将 UIViewController 作为子视图添加到 UIViewController(RootViewController)?

React 子组件在父组件中更新状态后如何将其重置回原始状态

将 NSArray 从 UIViewController 传递到子视图 [重复]

将 UIViews 作为子视图添加到 UIViewController [关闭]

将 UIPageViewController 的逻辑实现为 Swift 中 UIViewController 的子视图