2013-07-18 2 views
8

Я хочу поставить Настраиваемое изображение на моем UINavigationBar,Размер изображения на UINavigationBar

Когда я попытался это два фрагмента кода,

[self.navigationItem setTitleView:[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo.png"]]]; 

И

UIButton *logoView = [[UIButton alloc] initWithFrame:CGRectMake(0,0,70,30)]; 
    [logoView setBackgroundImage:[UIImage imageNamed:@"logo.png"] forState:UIControlStateNormal]; 
    [logoView setUserInteractionEnabled:NO]; 
    self.navigationItem.titleView = logoView; 

образ, который я может видеть, что на моем устройстве размывается изображение, или оно растягивается.

Я сделал изображение с постановлением 180*40 (ширина * высота)

Я хочу знать точный размер изображения. что бы это было?

Заранее спасибо.

+1

Если размер изображения равен ** 140x35 **, тогда установите размер кадра imageView. В противном случае он, очевидно, растянется. – TheTiger

+0

Вы хотите добавить логотип в navigationBar в центре? – TheTiger

+0

yes, On UINavigationBar – Krunal

ответ

17

использование этого

UIImageView *navigationImage=[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, 98, 34)]; 
navigationImage.image=[UIImage imageNamed:@"topNav-logo.png"]; 

UIImageView *workaroundImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 98, 34)]; 
    [workaroundImageView addSubview:navigationImage]; 
    self.navigationItem.titleView=workaroundImageView; 

надеюсь, что это поможет.

+0

что такое 'navigationImage' ?? – Krunal

+0

См. Править – iEinstein

+0

Каким должен быть размер изображения? – Krunal

1

Необходимо сначала инициализировать titleView. а затем установить его в ImageView как подвид:

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo.png"]]; 

self.navigationItem.titleView = [[UIView alloc] initWithFrame:imageView.bounds]; 
[self.navigationItem.titleView addSubview:imageView]; 
+0

он работает, но изображение все равно растягивается, каково должно быть разрешение изображения? – Krunal

+0

Вы можете сделать изображение, которое когда-либо разрешало вам, , вы должны проверить пару вещей: 1. Режим изображения должен быть aspectFit, поэтому он не будет получать границы ouf при добавлении в superView. 2. Проверьте также авторезистор изображения (удалите растяжение). 3. self.navigationItem.titleView.autoresizesSubviews по умолчанию == YES, попробуйте установить его в НЕТ. – Lirik

+0

Как сделать изображение в режиме aspectFit? – Krunal

2

Создать изображение с размером (320 х 44) и установить в качестве заголовка, как сильфон ..

self.navigationItem.titleView = yourImageView; 

Посмотреть весь пример, как сильфон. ..

- (void)viewDidLoad{ 
     UIImageView* imgView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"logo.png"]]; 
     self.navigationItem.titleView = imgView; 
     [imgView release]; 
} 
+0

Я хочу поставить название изображения, а не Фоновое изображение на NavigationBar – Krunal

+0

см. выше обновленный код .. –

+0

@ Крунал, вы попробуете этот ответ? –

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