IOS7 自定义UIBarButtonItem 的一些问题

ios 下自定义导航栏的BarButtonItem 会产生一些偏移问题,

解决方案: 通过新建一个系统的带固定距离的Item来调节你的Item

#define   IOS7_NAVI_SPACE   -10
}
    [self.navigationItem setLeftBarButtonItems:[self getBackBarButtonitem]];
}

//返回按钮
-(NSArray *)getBackBarButtonitem{
    //自定义button
    UIButton *button=[[UIButton alloc] initWithFrame:CGRectMake(0, 0, 55, 35)];
    //设置背景图片
    [button setBackgroundImage:[UIImage imageNamed:@"nav_left_btn_unselected.png"] forState:UIControlStateNormal];
    //设置文字
    [button setTitle:@"返回" forState:UIControlStateNormal];
    button.titleLabel.font=[UIFont systemFontOfSize:13];
    //设置文字颜色
    [button setTintColor:[UIColor whiteColor]];
    //为TouchUpInside添加行为
    [button addTarget:self action:@selector(backAction) forControlEvents:UIControlEventTouchUpInside];
    //初始化一个BarbuttonItem
    UIBarButtonItem *Item=[[UIBarButtonItem alloc] initWithCustomView:button];
    
    //在初始化一个系统的带有固定距离的占位的BarButtonItem 占位用
    UIBarButtonItem *fixedSpace=[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace target:self action:nil];
    fixedSpace.width=IOS7_NAVI_SPACE;//设置宽度// 把带固定距离的Item放在前面,调整距离
    return [[NSArray alloc] initWithObjects:fixedSpace,Item, nil];
}
时间: 2024-10-11 01:48:50

IOS7 自定义UIBarButtonItem 的一些问题的相关文章

ios7 自定义UINavigationBar UIBarButtonItem 10px的偏移纠正的两种解决方案

demo下载地址:http://pan.baidu.com/s/1c0eROkS 方案一:利用UINavigationBar 自带的布局item(Fixed space Bar Button Item)来适配ios7. 其实就是在原来返回按钮的位置上在多加一个占位的Item 为UINavigationBar 写一个分类.UINavigationItem+correct_offset.h #import <UIKit/UIKit.h> @interface UINavigationItem (c

iOS7 自定义动画跳转

简介 在iOS7系统中,如果你使用短信或者appStore苹果原生的工具的时候会发现这么一个细节.UINavigationViewController中界面的Push不再是像iOS6的旧界面左移,新的界面直接右侧滑入,而是新的视图是从右侧滑入并且盖在了之前视图控制器之上,还可以通过手势在界面左侧边界滑动来跳转到之前的界面.如图1.1,1.2. 图1.1                                          图1.2 不知道你是否已经看出两幅图之间的区别.有一个好的消息

自定义UIBarButtonItem

如果是通过UIButton自定义UIBarButtonItem,那么通过如下这个方式设置title是无效的.必须要直接给button设置title. self.navigationItem.rightBarButtonItem.title = @"编辑";

iOS7+自定义返回按钮

本来我是用创建UIButton赋值给self.navigationItem.leftBarButtonItem的方式设置返回按钮的,用了觉得挺正常,结果看了@蛙牛的文章<Java转iOS-第一个项目总结(2)>后,发现一个重大问题:手势返回功能没了,原因就是用设置leftBarButtonItem的方式来自定义返回按钮会导致手势返回功能失效. 如果不自定义返回按钮,又因为我使用的是RDVTabBarController,需要在返回方法里手动设置hide tabbar属性,这样我就需要拦截返回手

第十篇、自定义UIBarButtonItem和UIButton block回调

// 自定义导航栏左边按钮 self.navigationItem.leftBarButtonItem = [JQBlockedBarButtonItem blockedBarButtonItemWithTitle:@"返回" eventHandler:^{ [weakSelf.navigationController popViewControllerAnimated:YES]; }]; // 声明文件提供常用的接口 @interface JQBlockedBarButtonItem

IOS7下UIBarButtonItem偏移的解决办法

IOS7下的UIBarButtonItem偏移了10pt,相信这是大家都不想要的效果,解决的方法就是增加一个UIBarButtonSystemItemFixedSpace item,但是在7.1开始,只添加一个fixedSpaceItem运行会挂掉,肿么办,兼容的解决方法就是再在前面增加一个空的item,代码如下: UIBarButtonItem *item = [[UIBarButtonItem alloc] initWithCustomView:button];    //要添加到navga

第六十五篇、iOS7自定义转场动画

自定义转场动画,在iOS7及以上的版本才开始出现的,在一些应用中,我们常常需要定制自定义的的跳转动画 1.遵守协议:<UIViewControllerAnimatedTransitioning> 2.协议的方法主要的是两个: // 指定动画的持续时长 1. (NSTimeInterval)transitionDuration: // 转场动画的具体内容 2. (void)animateTransition:(id <UIViewControllerContextTransitioning

解决iOS7自定义返回按钮后不能侧滑返回的问题

iOS7自带侧滑返回功能,但是自定义返回按钮之后,侧滑返回功能会失效,解决办法如下: 自定义一个UINavigationController,实现几个代理方法 @interface CustomNavigationController : UINavigationController @end #import "CustomNavigationController.h" @interface CustomNavigationController ()<UINavigationCo

iOS7自定义statusbar和navigationbar的若干问题

当然有许多问题是这篇文章中没有提到的,按照文章的方法进行设置,你可能会遇到以下问题: 1.navigationbar的背景图片自定义以后,statusbar虽然和navigationbar共用了背景图,但是其还是透明的,颜色会比navigationbar淡许多,导致最终效果很难看,那么如何修复这个问题呢?很简单调用以下方法: self.navigationController.navigationBar.translucent = NO; 此时navigationbar和statusbar就融为