iOS - UIToolbar 从后台返回后调整大小
Posted
技术标签:
【中文标题】iOS - UIToolbar 从后台返回后调整大小【英文标题】:iOS - UIToolbar resized after returning from background 【发布时间】:2011-10-24 12:53:36 【问题描述】:我有一个工具栏,我已经对其进行了操作,以占用更多的屏幕空间。问题是当应用程序从后台返回时,它会重新调整为库存大小,而我似乎无法再次调整它的大小。
我目前如何修改它只是通过self.naviagtionController.toolbar.frame = CGRectMake(X,Y,W,H);
我也在使用 navigationController 工具栏。 (而且我有一个非常具体的原因使用 navigationControllers 工具栏)
【问题讨论】:
您在何时何地进行此操作? 我已经直接在 AppDelegate 上试过了,我也试过在 UIViewController 上设置它们,在应用程序重新回到前台后,两者似乎都将工具栏调整为库存尺寸。跨度> 您是否尝试在控制器的 viewWillAppear 方法中执行此操作? 是的,尽管当 App 返回前台时不会调用 viewWillAppear。 【参考方案1】:因此,您对应用程序的检查变为活动通知,然后设置工具栏大小。然后,您设置自定义大小,并在设置大小后出现一些东西并将其更改回默认大小。是这样的吗?
我认为会有更好的方法来做到这一点,但是......
您可以尝试将更改延迟到主运行循环执行。为此,您可以使用 GCD 将操作放在后台线程上,然后再将其放回主线程上。
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^
dispatch_async(dispatch_get_main_queue(), ^
// set toolbar frame
self.naviagtionController.toolbar.frame = CGRectMake(X,Y,W,H);
);
);
【讨论】:
这段代码似乎对我不起作用...... dispatch_get_main_queue 似乎没有采用这些参数。至少 Xcode 没有告诉我它没有。 你是对的。我复制和粘贴失败。 dispatch_get_main_queue 没有参数。当我连续剪切并粘贴 2 行时,我把它们留在了里面。我修复了上面的代码。以上是关于iOS - UIToolbar 从后台返回后调整大小的主要内容,如果未能解决你的问题,请参考以下文章
UIToolbar 的动画调整大小导致在 iOS <5.1 上剪切背景
iOS 7.1 UINavigationbar 和 UIToolbar