如何覆盖iOS上的故事板元素/视图?

时间:2013-06-20 21:58:18

标签: ios uiview uiviewcontroller storyboard uistoryboard

我在故事板中的某个位置设置了UITextView。当应用程序首次加载时,我希望textView位于故事板中的不同位置。我通过将其框架设置为具有不同原点的不同框架以编程方式执行此操作(稍后将textView动画回原始位置)。但无论我怎么做,应用程序总是在其故事板指定的位置启动textView。我似乎无法在任何地方执行此操作... viewDidLoad:viewWillAppear:,无效。我该如何覆盖呢?

另一件事......让我们说textView与故事板有不同的起源(框架在应用程序的某个点重置)。如果我使用addSubView:将子视图添加到textview,则textView将重置为故事板中的原始位置。为什么?!有什么方法可以阻止它吗?

2 个答案:

答案 0 :(得分:0)

如果你想在启动时改变textView的位置,我建议你在故事板中没有它,而是用正确的框架将它添加到子视图中。

特别是在Autolayout生效的情况下,拥有它已经意味着您必须修改其约束,如果您已经以编程方式修改其位置,那么您也可以通过编程方式将其添加到视图中,您可以更好地控制它以编程方式约束它。

答案 1 :(得分:0)

在自动布局下,您无法设置帧 - 嗯,您可以,但只要发生另一个布局传递,帧将重置为约束定义的帧。

更改使用自动布局在界面构建器中布局的视图的大小或位置的最简单方法是创建各种约束的出口,然后编辑其constant属性。如果这没有给你足够的灵活性,你仍然需要出口约束,但是当你想要移动东西时,你将不得不删除这些约束并添加新的约束。