回到我的视图控制器时,为啥我的 iPhone UIToolBar 这么大?

Posted

技术标签:

【中文标题】回到我的视图控制器时,为啥我的 iPhone UIToolBar 这么大?【英文标题】:Why is my iPhone UIToolBar so large when coming back to my view controller?回到我的视图控制器时,为什么我的 iPhone UIToolBar 这么大? 【发布时间】:2012-12-05 03:45:16 【问题描述】:

我在 Xcode 中有一个 UIToolbar,我使用 2 个 BarButtonItems 动态创建它,当我第一次进入页面时,它们的行为与预期完全一样,但如果我备份并返回,UIToolbar 会占用整个框架区域。

在我点击编辑按钮之前,该行为应该是没有 UIToolbar 的,此时它显示在底部。如果我点击取消按钮,UIToolbar 就会消失。这很完美。有一次,我点击后退按钮,然后单击按钮再次将我发送到此视图,UIToolbar 已接管。我仍然可以点击编辑按钮,UIToolbar 变成了底部的小按钮。如果我点击取消,它会一起消失。然后我可以单击编辑,它仍然是预期的视图。唯一的问题是当我第二次、第三次等第一次加载视图时。

我几乎觉得它从未正确发布过。我确实在 viewWillDisappear 方法上调用了 removeFromSuperview。

【问题讨论】:

【参考方案1】:

您只需在类级别(在接口中)为您声明对象到@synthesize 他们,在viewDidLoad 中执行操作,然后使用按钮为UIView 设置动画

【讨论】:

【参考方案2】:

这里在viewWillAppear: 方法中设置UIToolBar 的框架,如果您在viewWillDisappear: 中删除UIToolBar,还可以将其添加为self.view 的子视图

-(void)viewWillAppear:(BOOL)animated
    [yourToolBar setFrame:CGRectMake(0, 0, 320, 44)];// set frame which you want

【讨论】:

你说在哪里添加子视图?现在我在 viewwilldisappear- (void)viewWillDisappear:(BOOL)animated [super viewWillDisappear:animated]; [actionToolbar removeFromSuperview]; 对不起,这是我的 viewdidappear - (void)viewDidAppear:(BOOL)animated [self.view.superview addSubview:actionToolbar]; @user1877746 你试试viewWillAppear??到底是什么问题,你想要什么伙计..?

以上是关于回到我的视图控制器时,为啥我的 iPhone UIToolBar 这么大?的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 TabBar 按钮在我第一次加载视图控制器时被禁用?

独立跟踪下载进度 UI

当应用程序运行静态单元格的视图控制器时,iOS UI 崩溃

为啥我的方法在 iPhone/iPod 上被调用了两次,但在 iPad 上却没有?

为啥我的 UI Button 正常工作,但没有动画或向用户指示?

为啥我的收藏视图在向下或向上滚动时很慢?如何解决性能问题?我已经清理了我的 UI 代码