2013-07-18 42 views
8

tôi muốn đưa hình ảnh Custom trên UINavigationBar tôi,Kích thước của hình ảnh trên UINavigationBar

Khi tôi đã cố gắng này hai đoạn mã,

[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; 

hình ảnh mà tôi có thể thấy trên Thiết bị của tôi bị mờ hoặc đang bị xáo trộn.

tôi đã thực hiện hình ảnh với độ phân giải của 180*40 (Width * Height)

Tôi muốn biết kích thước chính xác của hình ảnh. những gì, nó sẽ được?

Cảm ơn bạn trước.

+1

Nếu kích thước hình ảnh là ** 140x35 ** thì hãy đặt kích thước khung của 'imageView' giống nhau. Nếu không, nó rõ ràng sẽ bị kéo dài. – TheTiger

+0

Bạn muốn thêm một logo trên navigationBar ở vị trí trung tâm? – TheTiger

+0

có, Trên UINavigationBar – Krunal

Trả lời

17

sử dụng này

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; 

hy vọng điều này sẽ hữu ích.

+0

'navigationImage' là gì ?? – Krunal

+0

Vui lòng xem chỉnh sửa – iEinstein

+0

kích thước của hình ảnh là gì? – Krunal

1

Trước tiên, bạn cần khởi tạo tiêu đềView. và sau đó đặt nó IMAGExem như là một subview:

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

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

nó hoạt động nhưng hình ảnh vẫn đang được kéo dài, độ phân giải của hình ảnh là gì? – Krunal

+0

Bạn có thể tạo hình ảnh có độ phân giải mà bạn thích, bạn nên kiểm tra một vài thứ: 1. chế độ nội dung hình ảnh phải là aspectFit, vì vậy nó sẽ không bị giới hạn khi thêm vào superView. 2. kiểm tra hình ảnh autoresizing là tốt (loại bỏ streching). 3. self.navigationItem.titleView.autoresizesSubviews là mặc định == CÓ, thử đặt nó thành NO. – Lirik

+0

Cách tạo chế độ nội dung hình ảnh aspectFit? – Krunal

2

Tạo hình ảnh với kích thước (320 x 44) và thiết lập như là một đề như dưới đây ..

self.navigationItem.titleView = yourImageView; 

Xem toàn bộ ví dụ như dưới đây. ..

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

Tôi muốn đặt hình ảnh tiêu đề chứ không phải Hình nền trên NavigationBar – Krunal

+0

xem mã được cập nhật ở trên .. –

+0

@Krunal bạn thử câu trả lời này ?? –

Các vấn đề liên quan