Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 如何调整UIToolbar实例包含的UIBarButtonim的框架或垂直对齐方式?_Iphone_Uibarbuttonitem_Vertical Alignment_Uitoolbar - Fatal编程技术网

Iphone 如何调整UIToolbar实例包含的UIBarButtonim的框架或垂直对齐方式?

Iphone 如何调整UIToolbar实例包含的UIBarButtonim的框架或垂直对齐方式?,iphone,uibarbuttonitem,vertical-alignment,uitoolbar,Iphone,Uibarbuttonitem,Vertical Alignment,Uitoolbar,UIBarButtonItems的水平定位没有问题,我可以简单地用固定/灵活的空间项目填充空间。但是,我似乎无法垂直调整工具栏项。UIToolbar没有对齐属性,UIBarButtonim无法设置其框架 我需要这样做,因为我们混合使用了使用initWithImage创建的自定义图标和使用initWithBarButtonSystemItem创建的标准图标。自定义图标没有正确居中(相对于正确居中的系统图标,它们向上偏移),因此工具栏看起来很尴尬。似乎不是一种简单、干净的方法,所以我采用了一种丑陋但

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


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

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


呃。

UIBarItem的imageInsets属性?

是的,imageInsets对我来说很好

 float topInset = 4.0f;
 myUIBarButton.imageInsets = UIEdgeInsetsMake(topInset, 0.0f, -topInset, 0.0f); 
将图像向下移动4个像素

避免这种情况:

 float topInset = 4.0f;
 myUIBarButton.imageInsets = UIEdgeInsetsMake(topInset, 0.0f, 0.0f, 0.0f); 

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

我建议你要么1)使用自定义的工具,而不是工具栏;或者2)修复图像,因为它们更容易正确调整。1不是我的选项。我不能做视觉设计的决定。我无法决定UI的外观、按钮的效果以及它们的位置。如果可能的话,我宁愿避免使用2,因为它意味着将工作交给视觉设计师。反复地来回传递图像,调整图像,然后通过反复试验来检查结果,这是很乏味的。也不能保证这会解决问题。。。即使我们调整图标的大小,UIKit也可能会将其向上移动。还有其他的建议吗?关于如何做文本的想法吗?imageinsets解决方案不适用于文本。很高兴看到我不是唯一一个有此问题的人。虽然“topInset=2.0f”对我来说很有用。