на iOS, как я могу сместить navigationItem.leftBarButtonItem горизонтально вправо? - PullRequest
3 голосов
/ 04 сентября 2010

Для пользовательского бара UINavigationBar требуется, чтобы я представил настраиваемую кнопку «назад», я использую navigationItem.leftBarButtonItem = myCustomizedButton, но ее положение фиксировано.

Кто-нибудь будет так любезен поделиться, как я могу сдвинуть эту кнопку на 40 пикселей вправо?

Ответы [ 2 ]

7 голосов
/ 29 августа 2011

Вы можете создать содержащий вид, который на 40 пикселей больше, чем ваше изображение.Добавьте свое изображение со смещением 40 пикселей.Добавьте содержащий представление как leftBarButtonItem.

Код следует:

// Create a containing view to position the button
UIView *containingView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, barButtonImage.size.width + 40, barButtonImage.size.height)] autorelease];

// Create a custom button with the image
UIButton *barUIButton = [UIButton buttonWithType:UIButtonTypeCustom];
[barUIButton setImage:barButtonImage forState:UIControlStateNormal];
barUIButton.frame = CGRectMake(40, 0, barButtonImage.size.width, barButtonImage.size.height);
[barUIButton addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];

[containingView addSubview:barUIButton];

// Create a container bar button
UIBarButtonItem *containingBarButton = [[[UIBarButtonItem alloc] initWithCustomView:containingView] autorelease];

// Add the container bar button
navigationItem.leftBarButtonItem = containingBarButton;
1 голос
/ 03 ноября 2010

Вы можете добавить пробел к вашей картинке, который отображается на панели навигации.У меня была та же проблема, и это единственное решение, которое я нашел для ее решения.Немного сложно, но это работает ...

...