2014-04-05 21 views
6

Tôi đang cố gắng để thanh điều hướng của mình trở nên trong suốt 100%, do đó các UINavigationButtonItems chỉ hiển thị và nền (thường là màu trắng) sẽ hiển thị hình nền.UINavigationController minh bạch?

tôi đã cố gắng

HomeNavigationController *navBar = [[HomeNavigationController alloc] initWithRootViewController:self.myViewController]; 
[navBar.navigationBar setBarTintColor:[UIColor clearColor]]; 
    [navBar.navigationBar setTranslucent:YES]; 

mặc dù không xuất hiện để làm việc.

EDIT:

Sử dụng

[self.navigationController.navigationBar setBackgroundImage:[UIImage new] 
        forBarMetrics:UIBarMetricsDefault]; 
self.navigationController.navigationBar.shadowImage = [UIImage new]; 
self.navigationController.navigationBar.translucent = YES; 
self.navigationController.view.backgroundColor = [UIColor clearColor]; 

Tôi có thể thấy rằng nó làm việc như mong đợi, tuy nhiên mục hiện đang còn vô hình.


CUỐI CÙNG: chỉ cần đảm bảo bạn không áp dụng bất kỳ thay đổi nào khác cho giao diện mà không kiểm tra trước!

Mã mà thực sự làm những gì được thiết kế:

[self.navigationController.navigationBar setBackgroundImage:[UIImage new] 
                forBarMetrics:UIBarMetricsDefault]; 

Hoặc bạn có thể thiết lập một hình ảnh trong suốt, nhưng điều này có ý nghĩa hơn. Bạn sẽ cần phần còn lại của mã được hiển thị trong bản chỉnh sửa gốc nếu bạn không muốn dòng nào đại diện cho đường viền.

+0

bạn có thể thử [navBar.navigationBar setTintColor: [UIColor colorWithWhite: 1.0 alpha: 0,0]; – user2277872

+1

Xem thông tin này: http://stackoverflow.com/questions/21850622/transparent-uinavigationbar/21850947#21850947, có thể giúp bạn. –

+1

Nếu bạn cần UINavigationBar của bạn được hoàn toàn minh bạch, thì tại sao không ẩn hoàn toàn nó, và sử dụng tùy chỉnh 'UIButtons' thay vì' UIBarButtonItems'? Sự xuất hiện của 'UINavigationBars',' UITabBars' và 'UIToolbars' đã thay đổi với iOS 7 khiến việc này trở nên khó khăn hơn và có lẽ không được khuyến khích sử dụng trong suốt. –

Trả lời

6

Có một mẹo. Chỉ cần đặt hình ảnh trong suốt vào nền thanh điều hướng.

UIImage *fakeImage = [UIImage imageNamed:@"transparentImage"]; 
[navigationBar setBackgroundImage:fakeImage forBarMetrics:UIBarMetricsDefault]; 

HOẶC

[navigationBar setBackgroundImage:[UIImage new] 
        forBarMetrics:UIBarMetricsDefault]; 
+1

Bạn cũng sẽ cần đặt hình ảnh bóng theo cùng một cách thành 'UIImage' trống. – voidref

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