2016-02-23 1 views
1

То, что я пытаюсь достичь, состоит в том, чтобы иметь среднее изображение вкладки, растянутое на разных разрешениях (i5, i6, i6 + ...), есть 5 вкладок, так что средний всегда составляет 1/5 ширины экрана.Как установить изображение в панели вкладок для полной ширины с resizableImageWithCapInsets

Этот код не растягивая на всю ширину средней вкладки:

UITabBarItem *timelineTabBarItem = [[UITabBarItem alloc] initWithTitle:@"Middle" 
                   image:[[[UIImage imageNamed:@"tab3-on"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 31, 0, 32)] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal] 
                 selectedImage:[[[UIImage imageNamed:@"tab3-off"] resizableImageWithCapInsets:UIEdgeInsetsMake(0, 31, 0, 32)] imageWithRenderingMode:UIImageRenderingModeAlwaysOriginal]]; 
timelineViewController.tabBarItem = timelineTabBarItem; 

На i6 + я вижу изображение в центре вкладки.

Что мне не хватает/как правильно заполнить вкладку?

Update:

Вот предварительный просмотр изображения: http://i.imgur.com/9IKISIy.png

Зеленый оригинальный образ, который должен охватывать темно-синюю область.

ответ

0

Попробуйте это,

UIImageView imgBgView = [[UIImageView alloc] initWithFrame:CGRectMake(itemWidth*itemIndex,0,itemWidth,self.tabBarViewController.tabBar.frame.size.height)]; 
imgBgView.image = [[UIImage imageNamed:@"tab_icon_checkin_inactive.png"] stretchableImageWithLeftCapWidth:0 topCapHeight:0]; 
imgBgView.contentMode = UIViewContentModeScaleAspectFit; 
[self.tabBar.tabBar insertSubview:imgBgView atIndex:0]; 

Здесь itemWidth ширина одной вкладки, чтобы получить его использовать,

float itemWidth = [[UIScreen mainScreen] bounds].size.width/(float)(self.tabBarViewController.tabBar.items.count); 

будет установить изображение на вкладке средней в TabBar.

Надеюсь, это поможет вам.

Смежные вопросы