右栏按钮项目上的奇怪偏移

时间:2014-02-25 08:22:49

标签: ios iphone ios7 uinavigationcontroller uinavigationbar

我在rightBarButtonItem的{​​{1}}遇到了一个奇怪的问题。按钮的边距在UINavigationController上消失,所以看起来像这样:

enter image description here

起初,我认为我的iOS7相关类别中存在一些错误,但我删除了所有自定义代码和类别的所有头文件,只需使用UINavigationController和空视图控制器。

UINavigationController

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease]; VCTestViewController *vc = [[[VCTestViewController alloc]init]autorelease]; UINavigationController *nc = [[[UINavigationController alloc]initWithRootViewController:vc]autorelease]; self.window.rootViewController = nc; [self.window makeKeyAndVisible];

VCTestViewController.m -> viewDidLoad

问题仍然存在(如上所示)。我无法弄清楚出了什么问题。你对这个问题有任何想法吗?

2 个答案:

答案 0 :(得分:2)

如果代码行不通,你可以分享你的代码行:

- (UIBarButtonItem *)rightNavBarButton
{
    UIButton *filterBtn = [UIButton buttonWithType:UIButtonTypeCustom];
    [filterBtn setTitle:@"hello" forState:UIControlStateNormal];
    filterBtn.frame = CGRectMake(0, 0,40,27);
    [filterBtn addTarget:self action:@selector(getFriendsList) forControlEvents:UIControlEventTouchUpInside];
    UIBarButtonItem *filterNavBarItem = [[UIBarButtonItem alloc] initWithCustomView:filterBtn];
    return filterNavBarItem;
}

答案 1 :(得分:0)

我终于弄明白发生了什么。

βhargavḯ给出的链接不是我的问题的解决方案,但它是我的问题的原因。我的一位同事写了一个UINavigationItem类来缩小iOS7中的空白区域。然后他使用方法调配来用他自己的方法交换系统方法setRightBarButtonItem:。我没有意识到这一点。

因此,如果您使用自己的方法交换系统方法,我认为方法调配会非常危险。