5

Вы видите, что я создаю полностью настраиваемую панель навигации, и когда я создаю кнопку «Назад», она не остается в нужном месте, как вы можете видеть ниже кода.Как изменить расположение кнопки «Назад» на iOS?

вот мой код приложения

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    if(self.navigationController.viewControllers.count > 1) { 
    UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom]; 

    [backButton setTitle:@"" forState:UIControlStateNormal]; 
    [backButton setBackgroundImage:[UIImage imageNamed:@"backButton.png"] forState:UIControlStateNormal]; 
    [backButton addTarget:self action:@selector(didTapBackButton:) forControlEvents:UIControlEventTouchUpInside]; 
    backButton.frame = CGRectMake(0.0f, 0.0f, 44.0f, 45.0f); 
    UIBarButtonItem *backButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton]; 

    self.navigationItem.leftBarButtonItem = backButtonItem; 
} 

}

Pic http://s8.postimage.org/k5faqz0jp/Screen_Shot_2013_01_24_at_5_30_10_PM.png

ответ

6

Я думаю, вы можете просто изменить contentEdgeInsets, чтобы сделать положение кнопки.

Нечто подобное:

[BackButton setContentEdgeInsets: UIEdgeInsetsMake (5, 0, -5, 0)];

UIButton Class Reference Родом из

contentEdgeInsets

врезке или боковик наценки для прямоугольника, окружающего все содержимое кнопки.

@property (неатомический) UIEdgeInsets contentEdgeInsets

DiscussionUse это свойство, чтобы изменить размер и положение эффективного рисования прямоугольника для содержания кнопки. Содержимое содержит изображение кнопки и название кнопки. Вы можете указать другое значение для каждой из четырех вложений (верхний, левый, нижний, правый). Положительное значение сжимается, или вставки, которые пересекают его ближе к центру кнопки. Отрицательное значение расширяет или завершает этот край. Используйте функцию UIEdgeInsetsMake для создания значения для этого свойства. Значение по умолчанию - UIEdgeInsetsZero.

+0

Спасибо за ваш ответ! – Prad

0

Ну вы не можете изменить, вы должны скрывать это.

Посмотрите на этой странице размещена здесь:

http://rafaelsteil.com/2011/07/23/crappy-ios-apis-uinavigationcontroller/

Can't change back button title but I can hide it

+0

Хотя это может технически ответить на вопрос, [было бы предпочтительнее] (http://meta.stackexchange.com/q/8259) для вас, чтобы подвести итог связанный материал здесь. В противном случае ответ рискует потерять свою полезность из-за связи гниения. –

+0

Нет, я знаю, как удалить заголовок кнопки «Назад», просто измените местоположение. Возможно ли это с помощью cgrect – Prad

0

вам нужно скрыть Панель навигации первый ...

[self.navigationController setNavigationBarHidden:YES animated:NO]; 

затем создать пользовательский UIButton ..

UIButton *btn1=[UIButton buttonWithType:UIButtonTypeCustom]; 
    [btn1 setFrame:CGRectMake(10, 0, 60, 40)];// Frame u want 

    [btn1 setImage:[UIImage imageNamed:@"[email protected]"] forState:UIControlStateNormal]; 
    [btn1 addTarget:self action:@selector(Click_backward:) forControlEvents: UIControlEventTouchUpInside]; 
btn1.tintColor=[UIColor purpleColor]; 
    [self.view addSubview:btn1]; 
+0

Привет, я добавил четыре кнопки навигации с помощью массива .. его работая нормально, но обратная кнопка индикатора hidded.how исправить это. – vijay

2

Вы можете изобразить большее изображение с некоторым интервалом слева.

UIImage *origImage = [UIImage imageNamed:@"button-thin-hamburger.png"]; 
UIGraphicsBeginImageContextWithOptions(CGSizeMake(origImage.size.width + 10, origImage.size.height), NO, 0.0); 
[origImage drawInRect:CGRectMake(10, 0, origImage.size.width, origImage.size.height)]; 
UIImage *buttonImage = UIGraphicsGetImageFromCurrentImageContext(); 
UIGraphicsEndImageContext(); 

UIBarButtonItem *backButton = [[UIBarButtonItem alloc] initWithTitle:@"" 
                   style:UIBarButtonItemStylePlain 
                   target:nil 
                   action:nil]; 
self.navigationItem.backBarButtonItem = backButton; 

[[UINavigationBar appearance] setBackIndicatorImage:buttonImage]; 
[[UINavigationBar appearance] setBackIndicatorTransitionMaskImage:buttonImage]; 
Смежные вопросы