UIToolbar 拒绝移动

Posted

技术标签:

【中文标题】UIToolbar 拒绝移动【英文标题】:UIToolbar refuses to move 【发布时间】:2013-05-22 20:41:04 【问题描述】:

我一直在尝试将我的UIToolbar 移动到-(void)viewDidLoad,但无论我使用什么,它都不起作用。我的示例代码如下:

[toolBarView setBounds:CGRectMake(0, 50, 150, 150)];
[toolBarView setCenter:CGPointMake(50,50)];

【问题讨论】:

首先检查您的工具栏是否不为零,其次使用框架属性 toolBarView.frame = CGRectMake(0,50,150,150) 进行定位和大小。 @danypata 已经检查过了,我也使用 NSLog(@"%f", toolBarView.frame.origin.y) 它说它是 50 但它没有显示出来。 不显示,你的意思是没有显示或者没有移动? @danypata 对此感到抱歉,我的意思是它不会在显示屏上移动 您是否尝试在viewDidAppear 方法中移动它? 【参考方案1】:

我能够做到这一点的方法是等到- (void)viewDidLayoutSubviews 被调用。当它被调用时,我调用了下面的代码:

- (void)viewDidLayoutSubviews 
    [toolBarView setBounds:CGRectMake(0, 50, 150, 150)];
    [toolBarView setCenter:CGPointMake(50,50)];

【讨论】:

【参考方案2】:

尝试在界面构建器中关闭自动布局(不推荐,但应该会有所帮助)。自动布局设置为使用约束来在屏幕上定位视图,它将始终强制执行它们的应用程序。对frame/bounds/center 属性的任何手动分配都会触发重新布局,从而导致您的更改被覆盖。如果没有帮助,请尝试使用 viewWillAppear 更改 position

【讨论】:

以上是关于UIToolbar 拒绝移动的主要内容,如果未能解决你的问题,请参考以下文章

用键盘iOS8移动UIToolbar

上移 UIToolbar

将 UIProgressBar 放在 UIToolbar 上

移动 UIToolbar 的最佳方式是啥?

在 UIToolbar 中移动 UILabel 的文本

UIToolBar 高度不会改变