目标C:自适应工具栏的方向变化

时间:2011-11-17 01:35:30

标签: objective-c ios xcode ipad uitoolbar

当我更改iPad的方向时,我的工具栏出现问题。

我将我的nib文件设置为横向,一切都很好但是当我将其转换为肖像时,我的工具栏仍然具有横向方向的宽度。

如何让我的工具栏适应方向更改为纵向?

风景: enter image description here

人像:

enter image description here

谢谢!

2 个答案:

答案 0 :(得分:3)

尝试将UIViewAutoresizingFlexibleWidth添加到工具栏autoresizingMask,如下所示:

myToolbar.autoresizingMask |= UIViewAutoresizingFlexibleWidth

或者,如果您在界面生成器中执行此操作,请确保选中此水平栏(其他人也可以选择,这很好):

enter image description here

UIView Class Reference关于autoresizingMask

的更多内容
  

当视图的边界发生变化时,该视图会自动调整其大小   根据每个子视图的自动调整掩码进行子视图。你指定   通过组合中描述的常量来组合掩码的值   使用C按位OR运算符UIViewAutoresizing。结合这些   常量允许您指定视图的哪些维度应该增长或   相对于superview缩小。此属性的默认值   是UIViewAutoresizingNone,表示视图不应该是   根本没有调整大小。

     

如果设置了同一轴上的多个选项,则为默认值   行为是按比例分配大小差异   灵活的部分。柔性部分相对于柔性部分越大   其他柔性部分,它可能越多。例如,   假设此属性包含UIViewAutoresizingFlexibleWidth和   UIViewAutoresizingFlexibleRightMargin常量,但不包括   UIViewAutoresizingFlexibleLeftMargin常数,表示   视图左边距的宽度是固定的,但视图的宽度是固定的   宽度和右边距可能会改变。因此,视图似乎锚定于   其超视图的左侧同时具有视图宽度和间隙   在视图右侧增加。

     

如果自动调整行为不能提供您的精确布局   需要您的视图,您可以使用自定义容器视图和覆盖   其layoutSubviews方法可以更准确地定位您的子视图。

答案 1 :(得分:1)

除了调整工具栏的灵活宽度外,您还可以创建2个工具栏项目数组。一个用于纵向,一个用于横向。幸运的是,您只需创建一次工具栏项,然后将它们添加到相应的数组中。

然后在方向更改期间,您可以将工具栏的项目数组设置为适当的项目。

祝你好运