以编程方式移动 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的主要内容,如果未能解决你的问题,请参考以下文章
以编程方式将 UIScrollView 滚动到 Swift 中的子 UIView(子视图)的顶部