以编程方式移动 UIView

Posted

技术标签:

【中文标题】以编程方式移动 UIView【英文标题】:Move UIView Programmatically 【发布时间】:2014-06-29 01:56:30 【问题描述】:

我的应用在屏幕底部显示横幅广告。

在这些广告之上是几个 UIViews/UIImageViews 等

如果用户通过 IAP 删除了广告,那么与预期的一样,原来横幅的位置会出现空白。

但是,我想将这些视图垂直向下移动,以减少屏幕上的明显间隙。

我一直在尝试的代码似乎不起作用 -

    UIView *moveView = [self.view viewWithTag:5];
    CGRect frame = moveView.frame;

    [moveView removeFromSuperview];

    frame.origin.y = frame.origin.y + 25.0;
    moveView.frame = frame;

    [self.view addSubview:moveView];

【问题讨论】:

【参考方案1】:

下面的答案建议删除自动布局,但是我的故事板需要自动布局。

我只需要删除一个 UIView 的自动布局。

我最终使用的是

[moveView settranslatesautoresizingmaskintoconstraints:YES]

这条简单的线让我可以移动视图而不必担心自动布局。

【讨论】:

【参考方案2】:

您可以创建一个 IBOutlet 并将其连接到情节提要中的 UIView。

@property (nonatomic, retain) IBOutlet UIView *moveView;

然后关闭情节提要中的自动布局。

一旦完成,然后尝试您的代码。

或者试试这个

[moveView setFrame:CGRectMake(0,0,320,480)];

【讨论】:

我已经回答了我上面的问题。感谢您的帮助【参考方案3】:

mmmbaileys 是对的。!!

小改动:

[self.yourview setTranslatesAutoresizingMaskIntoConstraints:YES];

在 viewDidLoad 中使用它。

【讨论】:

请查看URL这将有助于提升您的内容质量

以上是关于以编程方式移动 UIView的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 以编程方式移动/裁剪 UIView

如何以编程方式折叠 UIView?

以编程方式将 UIScrollView 滚动到 Swift 中的子 UIView(子视图)的顶部

如何转移UIView并使用Swift以编程方式添加新的UIView?

iOS - 以编程方式移动 UISearchBar

如何以编程方式向以编程方式创建的 UIView 添加约束?