2013-07-26 2 views
0

У меня есть пользовательский значок на моей панели навигации, и даже когда я установил размер 600 x 400, он все еще отображается на маленьком баре.Сделать навигационную кнопку крупнее

enter image description here Мой код для него является:

-(void)goBackOne { 
    [self.navigationController popToRootViewControllerAnimated:YES]; 
} 
- (void)viewDidLoad 
{ 
    UIButton *backbtn = [UIButton buttonWithType:UIButtonTypeCustom]; 
    backbtn.frame = CGRectMake(0, 0, 35, 25); 
    [backbtn setBackgroundImage:[UIImage imageNamed:@"done_button.png"] forState:UIControlStateNormal]; 
    [backbtn addTarget:self action:@selector(goBackOne) forControlEvents:UIControlEventTouchUpInside]; 
    self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backbtn];//set new button 
    self.navigationItem.hidesBackButton = YES;//hide original back button 


} 
+0

Проверка pls [UIImage imageNamed: @ "done_button.png"] size – NANNAV

ответ

0

Если рамка 35x25 (...frame = CGRectMake(0, 0, 35, 25)), это не имеет значения, если картинка 4096x2160.

У вас есть несколько вариантов.

Вы можете установить изображение до нужного размера и:

UIImage buttonImage* = [UIImage imageNamed:@"done_button.png"]; // png size ~40x40 for retina 
backbtn.frame = CGRectMake(0, 0, buttonImage.size.width, buttonImage.size.height); 

или вручную установить рамку с явным

backbtn.frame = CGRectMake(0, 0, 40, 35); 

и программно сделать свой UIImage масштабировать или растянуть внутри рамы границ , Stretch a UIImage.

Кроме того, вы можете попробовать использовать обычную кнопку назад через раскадровку/xibs и просто позвонить setImage, если вы не против позволить Objective-C сделать тяжелый подъем. (см.: How not to stretch an image for UIButton)