隐藏 uitoolbar 在顶部留下空隙
Posted
技术标签:
【中文标题】隐藏 uitoolbar 在顶部留下空隙【英文标题】:hiding uitoolbar leaves gap at the top 【发布时间】:2012-04-29 21:17:26 【问题描述】:我在一个导航堆栈中拥有三个视图控制器。第一个视图控制器不使用 uitoolbar,第二个使用,第三个不使用。
问题是,当我从第二个 UIViewController 转到第三个 UITableViewController 时,如果我隐藏工具栏,屏幕顶部会出现一个空白。
这是一张照片:
我目前有[self.navigationController setToolbarHidden:YES animated:YES];
在第二个视图控制器的 viewWillDisappear 中,但我也把它放在了第三个视图控制器的 viewWillAppear 方法中。两者都会导致出现差距。
我该如何解决这个问题?
【问题讨论】:
什么时候隐藏工具栏?推送之前还是之后,用什么方式? 我更新了问题来回答你的问题。 【参考方案1】:首先,我建议使用setToolbarHidden:YES animated:NO
让新的 UIViewController 出现而没有工具栏。我认为您的方法最初会显示它然后消失,对吗?如果你使用animated:NO
(或者使用没有animated:
的方法签名),当第三个UIViewController被推到屏幕上时,新的UIViewController应该“推”出第二个UIViewController的UIToolbar。
其次,您可能需要在 Interface Builder 中查看您的 UIViewController 视图的震动和支撑。这几乎肯定是造成这种差距的原因。您可能希望拥有固定的顶部和底部边距以及灵活的高度。
【讨论】:
表格视图的支柱连接到屏幕的顶部、底部、左侧和右侧。 你有灵活的身高吗?即上下双箭头是否被点击? 是的。这是一个 UITableViewController,它不会让我改变它。【参考方案2】:我会回答我自己的问题,但我不会接受它,因为它很老套。
我可以通过在 viewDidLoad 的开头添加这行代码来修复它:
[self.tableView setFrame: CGRectMake(0, 0, 320, 493)];
基本上,我将 tableview 框架的高度设置为比全屏尺寸(320 x 480)大 13 像素。
【讨论】:
虽然这可能在短期内奏效,但请相信我,你最好弄清楚如何优雅地做到这一点,因为你可能需要在横向的不同应用程序中使用相同的功能,因为iPad 等。以上是关于隐藏 uitoolbar 在顶部留下空隙的主要内容,如果未能解决你的问题,请参考以下文章