解决 iOS 7 UIBarButtonItem 在 navigationBar 中移位问题
来源:互联网 发布:关闭80端口会怎么样 编辑:程序博客网 时间:2024/06/05 22:38
UIButton *button = [UIButton alloc] initWithFrame:...];
[button setImage: ... forState: ...];
UIBarButtonItem *barButton = [[UIBarButtonItem alloc] initWithCustomView: button];
使用以上的代码,你可以给这个barButton 加任何的图片,在iOS6/5 中运行没有任何问题,但在iOS 7中,这个barButton 会往里靠拢大概 10 个points.
以下代码解决了左边的button 移位问题,大家可以依葫芦画瓢,把右边的方法加上。
#import <UIKit/UIKit.h>
@interface UINavigationItem (Spacing)
@end
-------
#import "UINavigationItem+Spacing.h"
#import <objc/runtime.h>
#import <objc/message.h>
@implementation UINavigationItem (Spacing)
// load 在初始化类时调用,每个类都有一个load 方法,
// 类的初始化先于对象
+(void)load
{
//以下方法告诉系统用后面的方法替换前面的
method_exchangeImplementations(
class_getClassMethod(self, @selector(setLeftBarButtonItem:)),
class_getClassMethod(self, @selector(mySetLeftBarButtonItem:)));
}
- (UIBarButtonItem *)spacer
{
UIBarButtonItem *space = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemFixedSpace
target:nil action:nil];
space.width = -10.0f;
return space ;
}
-(void)mySetLeftBarButtonItem:(UIBarButtonItem*)barButton
{
NSArray* barButtons = nil;
barButtons = [NSArray arrayWithObjects: [self spacer], barButton,nil ];
[self setLeftBarButtonItems: barButtons];
}
@end
- 解决 iOS 7 UIBarButtonItem 在 navigationBar 中移位问题
- 解决 UIBarButtonItem 移位问题
- NavigationBar中设置UIBarButtonItem的标题,颜色不改变问题
- iOS8 自定义navigationbar 以及 UIBarButtonItem 边距问题
- NavigationBar 完美自定义UIBarButtonItem
- iOS中NavigationBar设置
- 解决UISearchDisplayController 在消失后显示navigationController.navigationBar的问题
- 解决ios7中navigationbar位置显示不固定的问题
- 如何在 iOS 7 中设置 barTintColor 实现类似网易和 Facebook 的 navigationBar 效果
- 如何在 iOS 7 中设置 barTintColor 实现类似网易和 Facebook 的 navigationBar 效果
- 如何在iOS 7中设置barTintColor实现类似网易和 Facebook 的 navigationBar 效果
- IOS 在IOS5中使用NavigationBar导航栏(八)
- IOS 在IOS5中使用NavigationBar导航栏
- 解决navigationbar颜色不纯问题
- ios开发swift中NavigationBar
- 7.30 iOS 5.0中,导航条引入了 在一侧设置多个UIBarbuttonItem方法
- iOS解决navigationBar因为图片尺寸问题造成的会向上偏移64的问题
- iOS 真机上 webview获取html的title无法显示在navigationBar上。title被挤压。解决
- java.lang.ClassNotFoundException: Didn't find class "com.kge.love.base.BaseApplication" on path: Dex
- python简单计算器
- android 中在activity弹出一个对话框,并不会执行onpause生命周期方法
- 现在 未来 的趋势 大屏幕拼接控制器 网络分布式处理器--广州中淦信息科技
- Wallflower paper测试数据集(原Test Images for Wallflower Paper)
- 解决 iOS 7 UIBarButtonItem 在 navigationBar 中移位问题
- 大数据相关术语(2)
- java对图片进行“高保真”压缩
- cdn和dns
- sql server 2008R2修改sa密码的简单方式
- 网站博客
- ZOJ3869 Ace of Aces
- Linux系统目录权限chmod误操作权限修复方法
- cpp第三章编辑练习