我想在我的標籤欄上設置自定義背景圖片。我有名爲「tabbarBack.png」的圖片,大小爲640x92。在我的代碼中,我將它設置爲這樣。自定義標籤欄背景圖片太大
[[[self tabBarController] tabBar] setBackgroundImage:[UIImage imageNamed:@"tabbarBack.png"]];
當我在設備上測試它時,tabbar比它應該大兩倍? 有什麼幫助嗎?
親切的問候
我想在我的標籤欄上設置自定義背景圖片。我有名爲「tabbarBack.png」的圖片,大小爲640x92。在我的代碼中,我將它設置爲這樣。自定義標籤欄背景圖片太大
[[[self tabBarController] tabBar] setBackgroundImage:[UIImage imageNamed:@"tabbarBack.png"]];
當我在設備上測試它時,tabbar比它應該大兩倍? 有什麼幫助嗎?
親切的問候
NSAddict的評論:重命名你的圖像[email protected]。這稱爲視網膜顯示器的像素倍增。
如果沒有@ 2x iOS不知道它應該應用一個縮放因子,它將按原樣使用,儘管它應該減半。
那麼一劈爲:
[[[self tabBarController] tabBar] setBackgroundImage:[UIImage imageNamed:@"[email protected]"]];
在現實中應該有
所以你只說
[[[self tabBarController] tabBar] setBackgroundImage:[UIImage imageNamed:@"tabbarBack.png"]];
嘗試這種波紋管兩行
self.tabBarController.tabBar.autoresizesSubviews = NO;
self.tabBarController.tabBar.clipsToBounds = YES;
調整您的圖像可能會導致丟失,因爲基於它的像素分辨率。 而不是使用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];
默認標籤尺寸爲320x49 - 調整initWithFrame:方法CGRectMake以上,如果你的標籤欄的尺寸是定製。最後,如果您將其他圖像添加爲標籤欄的子視圖,請確保在添加背景圖像之前添加這些圖像。
檢查,如果你有這樣一行:
[[UITabBar appearance] setShadowImage:image];
您必須將其刪除或設爲零。
將圖像重命名爲**[email protected]**。這被稱爲**像素倍增**視網膜顯示 – NSAddict