Ste*_*ann 5 iphone objective-c uitabbar ios
我想在我的tabbar上设置自定义背景图片.我的图像名为"tabbarBack.png",大小为640x92.在我的代码中,我将它设置为这样.
[[[self tabBarController] tabBar] setBackgroundImage:[UIImage imageNamed:@"tabbarBack.png"]];
Run Code Online (Sandbox Code Playgroud)
当我在设备上测试它时,tabbar是它应该的两倍大?有帮助吗?
亲切的问候
调整图像大小可能会导致图像失去分辨率,因为它是基于像素的.而不是使用setBackgroundImage(不允许你调整图像大小)和改变Xcode之外的图像,为什么不插入背景图像作为标签栏的子视图?这样,您可以在XCode中调整图像的帧大小并保持图像文件不变!
/* TAB BACKGROUND IMAGE */
UIImageView *tabBackground = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 49)];
tabBackground.image = [UIImage imageNamed:@"BackgroundImage.png"];
tabBackground.contentMode = UIViewContentModeScaleAspectFill;
[self.tabBar insertSubview:tabBackground atIndex:0];
Run Code Online (Sandbox Code Playgroud)
默认选项卡尺寸为320x49 - 如果您的标签栏尺寸是自定义的,请调整上面的initWithFrame:CGRectMake.最后,如果您要将其他图像作为子视图添加到选项卡栏,请确保在添加背景图像之前添加这些图像.
试试这两行
self.tabBarController.tabBar.autoresizesSubviews = NO;
self.tabBarController.tabBar.clipsToBounds = YES;
Run Code Online (Sandbox Code Playgroud)
NSAddict 的评论:将您的图像重命名为 tabbarBack@2x.png。这称为视网膜显示屏的像素加倍。
如果没有 @2x,iOS 不知道它应该应用比例因子,并且它将按原样使用,尽管它应该减半。
所以黑客是:
[[[self tabBarController] tabBar] setBackgroundImage:[UIImage imageNamed:@"tabbarBack@2x.png"]];
Run Code Online (Sandbox Code Playgroud)
现实中应该有
所以你只说
[[[self tabBarController] tabBar] setBackgroundImage:[UIImage imageNamed:@"tabbarBack.png"]];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7392 次 |
| 最近记录: |