我有这个问题,我正在移动一个' A'在屏幕上查看用户想要移动的地方(从故事板中添加),我正在使用事件处理方法移动View,并且工作正常,
我现在遇到的问题是,当我添加新的' B'查看(以编程方式)到ViewControllers视图,我的' A'查看我已移动到其他位置,自动移动到其默认位置。 (在故事板上的位置)。
所以我想,我已经找到了每次向视图层次结构添加新视图viewWillLayoutSubViews:get' s调用并将视图重新定位到其默认值的原因。所以我想知道我该如何防止这种情况?
有关详细信息,请参见下图:
注意:
A和B(橙色和红色都是UIView)
从故事板添加橙色视图,并以编程方式添加红色视图。
同样see我之前关于类似问题的问题,
任何帮助都将不胜感激。
答案 0 :(得分:0)
昨天我遇到了同样的问题。如果您更改使用Autolayout约束在xib或storyboard中创建的视图(在您的示例中为A)运行时,则将一些控件添加到同一子视图,视图A将定位到原始约束。
据我所知,有两种解决方案:
viewA.translatesAutoresizingMaskIntoConstraints = YES;
答案 1 :(得分:0)
如果您使用autoLayout
,则必须为场景中的所有视图添加约束。
由于您没有为view A
添加任何约束,系统将在内部添加约束以将视图放置在该特定位置。如果然后使用框架手动移动视图,则此操作将无法保持,因为约束将强制视图移动到其原始位置。
您可以通过两种方式解决此问题:
constant
属性。如果需要调整视图大小或重新定位视图,请更改此constant
的值。希望这有帮助! :)