iPhone SDK - UITabBarКонтроллер и нестандартный дизайн - PullRequest
0 голосов
/ 07 мая 2010

У меня проблема с панелями вкладок внизу экрана. Дизайнер решил, что это должен быть один цвет (не черный), когда он неактивен, и другой цвет, когда он активен. Я разработал, как заменить основной цвет панели вкладок путем создания подкласса UITabBarController и сделать это: -

- (void)viewDidLoad {

[super viewDidLoad];
CGRect frame = CGRectMake(0.0, 0, self.view.bounds.size.width, self.view.bounds.size.height);
UIView *v = [[UIView alloc] initWithFrame:frame];

//get percentage values from digitalcolour meter and enter as decimals
v.backgroundColor  = [UIColor colorWithRed:.0 green:.706 blue:.863 alpha:1];
[tabBar1 insertSubview:v atIndex:0]; 
[v release];    

}

Я просто не вижу, как сделать активную панель вкладок отдельным цветом при ее выборе. Я попытался создать подкласс UITabBarItem, но, похоже, у меня нет никаких свойств для изменения цвета фона вкладки.

Они также хотят, чтобы значки на панели вкладок не были синими и серыми, и я не могу понять, как это сделать. В ViewController для одного элемента панели вкладок я поместил это в viewdidload: -

myTabBarItem *tabItem = [[myTabBarItem alloc] initWithTitle:@"listOOO" image:[UIImage imageNamed:@"starcopy.png"] tag:1];
tabItem.customHighlightedImage=[UIImage imageNamed:@"starcopy.png"];
self.tabBarItem=tabItem;
[tabItem release]; 
tabItem=nil;

и в моем подклассе UITabBarItem я поместил это: -

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

Только значок вообще не вижу.

Если я помещу это в viewDidLoad моего подкласса UITabBarController: -

for (UITabBarItem *item in tabBar1.items){
    item.image = [UIImage imageNamed:@"starcopy.png"]; 
}

Тогда у всех моих панелей вкладок есть значок, но они синего цвета (и серого цвета, когда неактивны), как заставить их не становиться синим, а сохранять их исходный цвет?

Если у вас есть какие-либо сведения об этой проблеме, пожалуйста, помогите, поскольку я уже 2 дня кувыркаюсь головой в стену, и это меня расстраивает. заранее спасибо Шерил

1 Ответ

0 голосов
/ 07 марта 2011

Кажется, что это невозможно сделать без использования вызовов частного API. Единственное решение, которое я вижу сейчас, - это создание полной пользовательской вкладки. Это, однако, большая работа, чтобы представить значок в другом цвете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...