2013-02-26 41 views
10

tôi sử dụng đoạn mã sau để tạo ra hình ảnh cho tôi UITabBarItemUITabBarItem hình ảnh màu sắc là màu xám trong khi hình ảnh ban đầu là màu trắng

self.tabBarItem.image = [UIImage imageNamed:@"tab_img.png"]; 

tab_img.png này bao gồm màu đen, trắng và rõ ràng. Nhưng trong ứng dụng tất cả các phần của hình ảnh có màu đen và trắng chuyển sang màu xám. Làm thế nào tôi có thể thay đổi màu xám sang màu trắng?

this is image that I use

enter image description here

+0

Bạn có thể thêm hình ảnh vào đây không? – Sagrian

+0

Tôi đã thêm hình ảnh nhà này. –

Trả lời

3

hình ảnh cho UITabBarItems nên chỉ kênh alpha! phần mờ sẽ xuất hiện màu xám (xanh nếu được chọn), mặc dù!

hãy xem tại địa chỉ: http://devinsheaven.com/creating-uitabbar-uitoolbar-icons-in-adobe-illustrator/

+0

Hình ảnh cho UITabBarItems có màu trắng và không phải màu xám? –

+0

https://github.com/rumex/RXCustomTabBar – blub

+2

Không đúng đối với iOS 7+. Bạn có thể sử dụng '- imageWithRenderingMode: UIImageRenderingModeAlwaysOriginal' – KPM

0

tôi đã cùng một vấn đề một lần, tôi sử dụng hình ảnh với màu trắng và alpha chỉ như thế này image

tôi đặt nó với self.tabBarItem.image = [UIImage imageNamed:@"Liste"];

+0

thay đổi [UIImage imageNamed: @" tab_img.png "]; để thay đổi [UIImage imageNamed: @ "tab_img"]; không giúp đỡ không giúp đỡ –

+0

Tôi đã chỉnh sửa câu trả lời của mình cho maike rõ ràng hơn – pmk

10

Set chọn và hình ảnh không được chọn .

[self.tabBarItem setFinishedSelectedImage:[UIImage imageNamed:@"mehr_icon"] withFinishedUnselectedImage:[UIImage imageNamed:@"mehr_icon"]]; 
+0

Phương thức không được chấp nhận trong iOS 7, Sử dụng phương pháp @Cornel Damian trong iOS 7 trở lên. – Henry

+0

là vậy, tks @fibnochi –

0

Chỉ Way là để đi đến IB (giao diện người xây dựng) và chọn UITabBarItem trong View Controller của bạn và đi đến "tập tin Thanh tra" di chuyển xuống và bạn sẽ thấy toàn cầu Tint cô bạn có thể thiết lập nó để không màu hoặc bất kỳ màu nào bạn muốn nó sẽ có hiệu lực đối với hình ảnh đã chọn.

theo đoạn mã sau là mối quan tâm

setFinishedSelectedImage: withFinishedUnselectedImage:; 

này không còn có sẵn trong iOS 7 chứ không phải chúng ta có thể sử dụng

[yourCustomTabBarItem setSelectedImage:---]; 

nhưng điều này cũng sẽ có hiệu lực của màu sắc thái toàn cầu này.

32

Trong iOS7, nếu bạn sử dụng IB bạn có thể phân lớp UITabBarController sau đó thêm này:

+ (void)initialize 
{ 
    //the color for the text for unselected tabs 
    [UITabBarItem.appearance setTitleTextAttributes:@{NSForegroundColorAttributeName : [UIColor redColor]} forState:UIControlStateNormal]; 

    //the color for selected icon 
    [[UITabBar appearance] setSelectedImageTintColor:[UIColor whiteColor]];  
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7) { 
     for (UITabBarItem *tbi in self.tabBar.items) { 
      tbi.image = [tbi.image imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]; 
     } 
    } 
} 

nếu bạn tạo các mục manualy bạn phải thiết lập các UIImageRenderingModeAlwaysOriginal trên mỗi biểu tượng và thêm mã từ khởi tạo.

+0

người đàn ông tốt. đã lưu cuộc sống của tôi – Liam

+0

Văn bản của mục đã chọn cũng có vẻ bị ảnh hưởng bởi dòng đầu tiên. Tôi phải thêm: [UITabBarItem.appearance setTitleTextAttributes: @ {NSForegroundColorAttributeName: [UIColor whiteColor]} forState: UIControlStateSelected]; để có được văn bản mục đã chọn chính xác. –

+0

..... câu trả lời tuyệt vời) – BhushanVU

1

Nếu bạn đang sử dụng tài sản hình ảnh, chỉ cần thiết lập trường "Render As" hình ảnh của bạn (được lựa chọn và hình ảnh không được chọn) để "Original Image" (example)

Sau đó, trong xib bộ "Hình ảnh" và " Các trường "Hình ảnh đã chọn" trên mục thanh tab của bạn (example)

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