Пользовательский TabBar на iOS5 с API - PullRequest
3 голосов
/ 26 ноября 2011

Я попробовал новый API настройки для iOS 5 и у меня возникли проблемы, которые я не понимаю.Как я это делаю:

UITabBar *tabBar = [rootController tabBar];
if ([tabBar respondsToSelector:@selector(setBackgroundImage:)])
{
    [tabBar setBackgroundImage:[UIImage imageNamed:@"tabbar_bg.png"]];
    tabBar.selectionIndicatorImage = [UIImage imageNamed:@"over.png"];
    tabBar.tintColor = [UIColor colorWithRed:56.0/255.0 green:63.0/255.0 blue:74.0/255.0 alpha:1.0];
    tabBar.selectedImageTintColor = [UIColor colorWithRed:94.0/255.0 green:102.0/255.0 blue:114.0/255.0 alpha:1.0];
}

Проблема показана на изображении ниже:

enter image description here

Граница - это моя проблема ... и это толькопроисходит, если я пытаюсь использовать его с красивыми (: P) цветами .. если я пытаюсь использовать его с белым, это выглядит так:

enter image description here

У вас есть идеи, как исправитьэто?

1 Ответ

0 голосов
/ 17 января 2012

Если вы создаете подкласс UITabBarItem и реализуете методы

- (UIImage *)selectedImage
- (UIImage *)unselectedImage

Вы можете возвращать любые изображения, которые вам нужны, из них, и к ним не будут применены какие-либо эффекты стиля.

Техническиэто частные методы, но вы не вызываете их, вы переопределяете их, и я видел множество приложений, использующих эту технику без отклонения.

Вы также можете использовать категорию для переопределения этих методов длявсе вкладки в вашем приложении.Хорошим трюком является просто переопределить selectedImage для возврата изображения, например:

- (UIImage *)selectedImage
{
    return self.image;
}

Таким образом, все элементы панели вкладок будут использовать любое изображение, которое вы предоставляете, без применения каких-либо эффектов для selectedImage, но все равноиспользуйте серый стиль по умолчанию для unselectedImage.Обратите внимание, что это означает, что вы предоставляете изображение с цветами для элементов панели вкладок, а не просто изображение маски как обычно.

...