我想要实现的是让中间标签图像在不同的分辨率(i5,i6,i6 + ...)上拉伸,有5个标签,因此中间的标签总是1/5的屏幕宽度。< / p>
此代码未在中间选项卡的整个宽度上拉伸:
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 +上,我看到标签中心的图像。
我缺少什么/如何正确填充标签图片?
更新
这是预览图片:http://i.imgur.com/9IKISIy.png
绿色是应覆盖深蓝色区域的原始图像。
答案 0 :(得分: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的中间选项卡中。
希望它会帮助你。