我的视图顶部有UIToolbar
,需要在动画中调整大小。工具栏包含:
UIBarButtonItem
(“+”按钮)UIBarButtonSystemItemAdd
UIBarButtonItem
UIBarButtonItem
使用样式UIBarButtonItemStyleBordered
(“编辑”按钮)我在每个按钮之间使用间隔符添加这些按钮,这使标题保持在中心位置:
[toolbar setItems: @[addButton, spacer, titleButton, spacer, editButton] animated:NO];
工具栏调整得很好,两个按钮将其位置固定在外边缘。但是,标题按钮不会保留在工具栏的中心。相反,它似乎将其右边缘固定在同一位置,在其左侧创建一个空间。在动画期间,这给人的印象是它向右滑动。
要清楚,我要希望标题栏保持相同的宽度 - 我不希望它随着工具栏的增长而扩展。但我需要将标题保留在工具栏的中心。
由于UIBarButtonItem
不是UIView
,我不能(?)使用autoresizingmask
功能。
如何将标题保留在工具栏的中央?
其他信息
这可能是因为“添加”和“编辑”按钮具有不同的宽度 - 当我只添加标题(任意一侧有间隔符)时,行为是正确的。
答案 0 :(得分:0)
我知道它太糟糕了,你仍然可以使用自定义按钮作为条形按钮项目,并使用其中的添加/编辑按钮的图像。这样您就可以在任何地方设置按钮框架。所以你的按钮不会放在最正确的位置。
UIButton * addButton = [[UIButton alloc] init];
[addButton setBackgroundImage:<AddimageName> forState:UIControlStateNormal];
UIBarButtonItem * addItem = [[UIBarButtonItem alloc] initWithCustomView:addButton];
答案 1 :(得分:0)
事实证明,我遗漏了一个至关重要的细节。我手动将编辑按钮的width
设置为50。
如果删除此项,则调整大小将按预期工作。但是,我无法控制编辑按钮的大小,我想将其设置为50,因此它与导航栏上的按钮匹配。
我找到了一个可行的解决方案。将“编辑”按钮的宽度保持为50.在“+”按钮后立即添加固定分隔符,并将其宽度设置为18(50 - “+”按钮的宽度)。这可以平衡标题两侧的项目。