2014-02-06 3 views
0
backButton = [UIButton buttonWithType:UIButtonTypeCustom]; 

[backButton addTarget:self action:@selector(gotoAmphorasViewController) forControlEvents:UIControlEventTouchUpInside]; 

[backButton setFrame:CGRectMake(0.0f,0.0f, 44,44)]; 

Проблема, с которой я столкнулся, заключается в том, что хотя размеры кнопок - 44*44, везде, где я нажимаю в любом месте, действие кнопки запускается.Навигационная панель Пользовательская кнопка

+0

Почему это так плохо? Вы всегда получаете дополнительную свободу с кнопками, чтобы было легко нажимать. – Mika

+0

Я не говорю, что это плохо, я не знал об этом, поэтому я подумал, что это ошибка. Спасибо @mMikael – Abhishek

ответ

1

Пожалуйста, попробуйте сильфон код его работой правильно

- (void)viewDidLoad { 
    [super viewDidLoad]; 
UIImage *buttonImage = [UIImage imageNamed:@"back.png"]; 

    UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; 

    [button setImage:buttonImage forState:UIControlStateNormal]; 


    button.frame = CGRectMake(0, 0, buttonImage.size.width, buttonImage.size.height); 

    [button addTarget:self action:@selector(back) forControlEvents:UIControlEventTouchUpInside]; 

    UIBarButtonItem *customBarItem = [[UIBarButtonItem alloc] initWithCustomView:button]; 

    self.navigationItem.leftBarButtonItem = customBarItem; 
    [customBarItem release]; 



} 

-(void)back { 

[self.navigationController popViewControllerAnimated:YES]; 
} 
1

Его не ошибка. Это поведение по умолчанию. В iPhone для кнопок панели навигации сенсорное обнаружение немного расширеннее, чем его рамка. Просто взгляните на любое другое приложение. Везде кнопка срабатывает, если мы приближаемся ближе, но не за ее рамкой.

1

Это предполагаемое поведение, если вы действительно хотите, чтобы ограничить область прикосновения, вы можете обернуть кнопку внутри UIView:

UIView *buttonContainer = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 44, 44)]; 
[buttonContainer addSubview:button]; 
_barButton = [[UIBarButtonItem alloc] initWithCustomView:buttonContainer]; 
+0

спасибо man :) Мне нравится ваш подход – Abhishek

Смежные вопросы