2011-01-26 2 views
0

Я хочу добавить UITabBar в мой UIViewController, я не хочу использовать UITabBarController, потому что мне нужно нажать этот контроллер вида в контроллер навигации.Как масштабировать изображение TabBarItem

Все в порядке, за исключением того, что мои изображения для UITabBarItem не являются масштабными, чтобы соответствовать размеру элемента, который будет отображаться правильно.

Как исправить эту проблему?

Вот код:

UITabBar *myTabBar = [[UITabBar alloc] initWithFrame:CGRectMake(0.0, barHeight, screenBounds.size.width, 50.0)]; 
myTabBar.opaque = YES; 

UITabBarItem *barItem1 = [[UITabBarItem alloc] initWithTitle:@"title1" image:[UIImage imageNamed:@"icon1.png"] tag:1]; 
UITabBarItem *barItem2 = [[UITabBarItem alloc] initWithTitle:@"title2" image:[UIImage imageNamed:@"icon2.png"] tag:2]; 
UITabBarItem *barItem3 = [[UITabBarItem alloc] initWithTitle:@"title3" image:[UIImage imageNamed:@"icon3.png"] tag:3]; 
UITabBarItem *barItem4 = [[UITabBarItem alloc] initWithTitle:@"title4" image:[UIImage imageNamed:@"icon4.png"] tag:4]; 

NSArray *tbItems = [NSArray arrayWithObjects:barItem1, barItem2, barItem3, barItem4, nil]; 
myTabBar.items = tbItems; 

ответ

3

Вы должны сохранить TabBar изображения как 42x42. Затем в имени файла объявляется директива @ 2x.

т.е. [email protected]

Мы делаем это так, чтобы значок загрузки на 42x42 пикселей на iPhone 4/IPod Touch 4G, но масштабируются до 21х21 для старых устройств.

Это поможет вам сэкономить много времени. Также обратите внимание, что UITabBar заботится только об альфа-канале изображения. Поэтому одноцветные изображения - хорошая идея. Это позволит сэкономить место.

0

Я чувствую, что вы должны использовать UIToolBar или UISegmentedControl, а не UITabBar.

UITabBar's обычно должен использоваться с UITabBarController для управления им и должен использоваться для переключения режима приложения, как это делает Apple. Это означает, что TabBarController должен быть rootViewController (исключение было бы, если вы добавите окно входа в систему до того, как приложение запустится в качестве приложения панели вкладок).

this thread might also help