将 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 传递到子视图 [重复]