UIToolbarresize导致景观中奇怪的UIBarButtonItem大小

当我创build并添加UIToolBar和UIBarButton项目时,如何让工具栏和项目在两个方向上正确显示。 这是我迄今为止:

self.toolbar = [[[UIToolbar alloc]initWithFrame:CGRectMake(0, 372, 320, 44)]autorelease]; self.toolbar.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; self.deleteButton = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemTrash target:self action:@selector(deleteButtonClicked)] autorelease]; self.deleteButton.style = UIBarButtonItemStylePlain; UIBarButtonItem *flexibleSpace = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil] autorelease]; self.shareButton = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:self action:@selector(shareButtonClicked)] autorelease]; self.shareButton.style = UIBarButtonItemStylePlain; self.navigationItem.leftBarButtonItem = backItem; NSArray *toolbarItems = [NSArray arrayWithObjects:self.shareButton,flexibleSpace,self.deleteButton,nil]; [self.toolbar setItems:toolbarItems animated:NO]; 

从图像中可以看到,UIBarButtonItems在纵向上看起来是正确的,但在景观上奇怪地被压扁并偏离中心(特别是垃圾图标)。 有没有一个明显的解决scheme,我错过了,或者我必须做手动resize,以得到这个权利?

纵向

景观定位

这是一个微妙的差异,但这应该是这样的: 它应该是什么样子

您必须查看UIToolBar和button的“ Size inspector中的“ Autoresizing选项。 UIToolBar也可能有一个复选标记设置为Autoresize subviews取消选中,所以它不会影响你的button。

答案是,至less在iOS 5之前是使用UINavigationController的内置工具条而不是创build自己的。 内置工具栏将正确自动resize。