IOS7中,UIBarButtonItem位置偏下问题

Abe_ 2014-02-11 02:14:18

ios6中


ios7中
上面两个图分别是在ios6和ios7环境下,UIBarButtonItem的情况。
这里所有的UIBarButtonItem都用了
- (id)initWithBarButtonSystemItem:(UIBarButtonSystemItem)systemItem target:(id)target action:(SEL)action;
方法进行初始化

代码如下

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization



UIBarButtonItem *fixedSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:nil action:nil ];
fixedSpace.width = 5.0f;
UIBarButtonItem *fixibleSpace = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFlexibleSpace target:nil action:nil ];

UIBarButtonItem *stop = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemStop target:nil action:nil];

UIBarButtonItem *action = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAction target:nil action:nil];

UIBarButtonItem *compose = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCompose target:nil action:nil];


NSArray *items = [NSArray arrayWithObjects:
fixibleSpace,
stop,
fixibleSpace,
action,
fixibleSpace,
compose,
nil];
UIToolbar *toolBar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 0.0f, 220, 44.0f)];

toolBar.backgroundColor = [UIColor blackColor];

[toolBar setItems:items];
self.navigationItem.rightBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:toolBar];

}
return self;
}


如果UIBarButtonItem用以下方法初始化
- (id)initWithImage:(UIImage *)image style:(UIBarButtonItemStyle)style target:(id)target action:(SEL)action;
那么,只要设置UIBarButtonItem的width属性,就可以调整过来来。
但是用
- (id)initWithBarButtonSystemItem:(UIBarButtonSystemItem)systemItem target:(id)target action:(SEL)action;
方法初始化,是无法对width属性进行设置的。

请教下大神,除了改用UIImage初始化之外,如何解决这个偏移的问题。
...全文
387 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
阮小木 2014-02-20
  • 打赏
  • 举报
回复
动态控制,看看是ios6以下,还是ios7以上,ios6以下默认的导航条是44,而ios7以上默认的导航条是64 另外你试试这个方法建立UIBarButtonItem UIImage*image1 = [UIImage imageNamed:@"toubuanniu1.png"]; UIButton*buttonback = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 20, 20)]; [buttonback setBackgroundImage:image1 forState:UIControlStateNormal]; [buttonback addTarget:self action:@selector(vip) forControlEvents:UIControlEventTouchUpInside]; UIBarButtonItem*rightButton = [[UIBarButtonItem alloc] initWithCustomView:buttonback]; self.navigationItem.rightBarButtonItem = rightButton;
  • 打赏
  • 举报
回复
只能判断操作系统版本,做动态代码控制界面了
hslinux 2014-02-11
  • 打赏
  • 举报
回复
20像素的问题。 判断下操作系统版本,根据不同版本做些变化。

29,028

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧