У меня есть следующий код для настройки отображения UIBarButtonItem (locationButton):
UIButton *locationButtonAux = [UIButton buttonWithType:UIButtonTypeCustom];
[locationButtonAux setFrame:CGRectMake(0, 0, LOCATION_BUTTON_WIDTH, LOCATION_BUTTON_HEIGHT)];
[locationButtonAux setBackgroundImage:[UIImage imageNamed:@"location_button.png"] forState:UIControlStateNormal];
[locationButtonAux setBackgroundImage:[UIImage imageNamed:@"location_button.png"] forState:UIControlStateHighlighted];
[locationButtonAux addTarget:self action:@selector(userLocation) forControlEvents:UIControlEventTouchUpInside];
UIBarButtonItem *locationButton = [[UIBarButtonItem alloc] initWithCustomView:locationButtonAux];
UIBarButtonItem * item = [[UIBarButtonItem alloc] initWithTitle:@"title"
style:UIBarButtonItemStyleDone
target:nil action:@selector(someMssage)];
[locationButton setBackgroundVerticalPositionAdjustment:-20.0 forBarMetrics:UIBarMetricsDefault];
self.navigationItem.rightBarButtonItem = locationButton;
И я хочу настроить положение этой кнопки на панели навигации, потому что моя панель навигации выше, чем обычно (настраивается с помощью внешнего вида).
Я использую для этого метод setBackgroundVerticalPositionAdjustment, как вы можете видеть в коде. Но с моим UIBarButtonItem вообще не работает, независимо от того, какое смещение я там указал, кнопка всегда появляется близко к нижней части панели (моментальный снимок). НО, если я использую обычный UIBarButtonItem с обычным стилем (тот, который я назвал кнопкой), я ДЕЙСТВИТЕЛЬНО вижу, как положение кнопки будет изменено со смещением -20. Очень странно... Есть идеи?
Спасибо!