アプリ内で UINavigationController とそのバーを使用しています。ここで、leftBarButtonItem と rightBarButtonItem の位置を変更したいと思います。カスタムの幅と高さを持つ別の x と y の位置に配置したい。
しかし、問題は、フレームを変更しても、barButtonItem で何も変更されないことです。理由はわかりませんが、フレームは常に元の座標にリセットされます。
viewWillAppear で呼び出すコードは次のとおりです。
UINavigationItem *navItem = [[self.navigationBar items] lastObject];
UIView *rightview = [[UIView alloc] initWithFrame:CGRectMake(0,0,66,30)];
rightview.backgroundColor = [UIColor blueColor];
//add custom view
UIBarButtonItem *search = [[UIBarButtonItem alloc] initWithCustomView:rightview];
navItem.leftBarButtonItem = search;
ビューは 0/0 から始まっていません。たとえば、x 位置は 0 から 5px の位置にあります。
この問題を解決する方法について何か提案はありますか?