如何调整UIToolbar实例包含的UIBarButtonItem的框架或垂直对齐?

aka*_*aii 22 iphone vertical-alignment uitoolbar uibarbuttonitem

UIBarButtonItems的水平定位没问题,我可以简单地用固定/灵活的空间物品填充空间.但是,我似乎无法垂直调整工具栏项.UIToolbar没有对齐属性,UIBarButtonItem无法设置其框架.

我需要这样做是因为我们使用了使用initWithImage创建的自定义图标和使用initWithBarButtonSystemItem创建的标准图标.自定义图标没有正确居中(它们向上偏移,相对于系统图标,它们正确居中),因此工具栏看起来很笨拙.

小智 34

是的,imageInsets对我来说很好!

 float topInset = 4.0f;
 myUIBarButton.imageInsets = UIEdgeInsetsMake(topInset, 0.0f, -topInset, 0.0f); 
Run Code Online (Sandbox Code Playgroud)

将图像向下移动4个像素.

避免这个:

 float topInset = 4.0f;
 myUIBarButton.imageInsets = UIEdgeInsetsMake(topInset, 0.0f, 0.0f, 0.0f); 
Run Code Online (Sandbox Code Playgroud)

将图像向下移动4个像素(但是重新调整图像高度,使其看起来像是压缩的).


aka*_*aii 1

似乎没有任何简单、干净的方法来做到这一点,所以我采用了一个丑陋但实用的技巧:嵌套。我将另一个包含按钮的 UIToolbar 粘贴到 UIView 中,我使用 initWithCustomView 将其设置为原始工具栏上的 UIBarButtonItem。第二个 UIToolbar 可以在 UIView 内自由移动,实际图标保留 UIBarButtonItem 的所有属性。

啊。