自动布局和"按下时隐藏底栏"

Eya*_*yal 42 objective-c storyboard uitabbarcontroller ios autolayout

我的应用程序(简化)结构是这样的:

UITabBarController一个人UINavigationController拿着一个UITableViewController根视图控制器.

当点击其中一个表格视图控制器单元格时,我按下常规UIViewController(让它称之为VC)结束隐藏底部标签栏.(使用"按下时隐藏底栏"标志)

在故事板中,我UIView向VC 添加了一个看起来像底栏的常规子类,我使用自动布局将其固定到VC视图的底部.


我推VC时的问题需要一秒钟才能将此视图固定到底部,看起来像自动布局将其固定到底部,就像标签栏没有隐藏一样,一秒后它就会识别出标签栏是隐藏的将其移动到视图的真实底部.

我知道这不是最好的解释,所以我添加了一个非常简单的项目来证明这个问题.

Ear*_*rey 63

问题在于这个特定的约束,它位于底部布局指南的视图和顶部之间.

在此输入图像描述

选择约束并编辑其"第二项"属性

在此输入图像描述

在这里你需要选择底部

在此输入图像描述

一旦你有了,粉红色的视图不再受布局指南的影响.布局指南似乎承认只有在推送的视图控制器的根视图位于主屏幕的边界之后才会隐藏选项卡栏,这仅在动画完成时才会发生.

这就是视图层次结构需要再次布局导致不需要的动画的原因.

  • 我不能再在Xcode 7.0中选择底部了 (20认同)
  • @AnthonyM它有点隐藏在Xcode 7中,但它就在那里:http://stackoverflow.com/a/33432500/125407 (12认同)
  • @AnthonyM我也遇到了这个问题.我最终手动编辑了故事板的源代码,以便我可以更改约束的项目以使用底部布局guide.bottom. (3认同)
  • 这是最简单的修复方法.我自己试了一下. (2认同)

Vin*_*nzo 32

接受的答案对我不起作用(该选项不可用).但是我找到了另一个解决方案.(基于通过Autolayout推动隐藏底栏)

选择booth视图和要对齐的对象(在我的情况下为btnShare)并添加新的对齐约束(Bottom Edges).

在此输入图像描述 在此输入图像描述

  • 优秀!这对我也有用! (2认同)

Oni*_* IV 14

您好在故事板中选择标签栏(是标签栏控制器场景>标签栏控制器>标签栏),在属性检查器中,取消选中"半透明"框.此操作可以解决您的问题.(但是有很多东西,"按下时隐藏底栏"是工具栏).


Ara*_*ash 6

选择"导航控制器",然后在"属性检查器"中删除"底部条形图"下的复选标记.


Zap*_*ndr 6

如果您无法在Xcode 7+中选择bottomlayoutguide bottom

喜欢那里 只需执行以下操作:在源代码编辑器中打开故事板

在编辑中打开 搜索您的控制器的标识符

在源文件中搜索 查找<layoutGuides>,输入<bottom>,复制它ID

找到layoutGuides 从顶部到底部按ID更改属性进行搜索

查找和替换 请享用.