当我更改iPad的方向时,我的工具栏出现问题。
我将我的nib文件设置为横向,一切都很好但是当我将其转换为肖像时,我的工具栏仍然具有横向方向的宽度。
如何让我的工具栏适应方向更改为纵向?
风景:
人像:
谢谢!
答案 0 :(得分:3)
尝试将UIViewAutoresizingFlexibleWidth
添加到工具栏autoresizingMask
,如下所示:
myToolbar.autoresizingMask |= UIViewAutoresizingFlexibleWidth
或者,如果您在界面生成器中执行此操作,请确保选中此水平栏(其他人也可以选择,这很好):
UIView
Class Reference关于autoresizingMask
:
当视图的边界发生变化时,该视图会自动调整其大小 根据每个子视图的自动调整掩码进行子视图。你指定 通过组合中描述的常量来组合掩码的值 使用C按位OR运算符
UIViewAutoresizing
。结合这些 常量允许您指定视图的哪些维度应该增长或 相对于superview缩小。此属性的默认值 是UIViewAutoresizingNone
,表示视图不应该是 根本没有调整大小。如果设置了同一轴上的多个选项,则为默认值 行为是按比例分配大小差异 灵活的部分。柔性部分相对于柔性部分越大 其他柔性部分,它可能越多。例如, 假设此属性包含
UIViewAutoresizingFlexibleWidth
和UIViewAutoresizingFlexibleRightMargin
常量,但不包括UIViewAutoresizingFlexibleLeftMargin
常数,表示 视图左边距的宽度是固定的,但视图的宽度是固定的 宽度和右边距可能会改变。因此,视图似乎锚定于 其超视图的左侧同时具有视图宽度和间隙 在视图右侧增加。如果自动调整行为不能提供您的精确布局 需要您的视图,您可以使用自定义容器视图和覆盖 其
layoutSubviews
方法可以更准确地定位您的子视图。
答案 1 :(得分:1)
除了调整工具栏的灵活宽度外,您还可以创建2个工具栏项目数组。一个用于纵向,一个用于横向。幸运的是,您只需创建一次工具栏项,然后将它们添加到相应的数组中。
然后在方向更改期间,您可以将工具栏的项目数组设置为适当的项目。
祝你好运