6

通常UITabBarの背景画像を高さの低いカスタム画像に変更したため、heightの を変更しましたframe。最初に得たのは、タブバーの下の空白スペースです。だから私ものを変更しましoriginframe。しかし、空白がタブ バーの上に移動し、結果は次のようになりました。

タブバーの上のスペース

これは、AppDelegate でタブ バーを宣言するコードです。

self.tabContoller = [[UITabBarController alloc] init];
//customizing the tabbar
UIImage * tabBackgroundImage = [UIImage imageNamed:@"tabBarBg.png"];
self.tabContoller.tabBar.backgroundColor = [UIColor colorWithRed:245.f/255.f green:245.f/255.f blue:245.f/255.f alpha:255.f/255.f];
self.tabContoller.tabBar.backgroundImage = tabBackgroundImage;
//setting the tabbar height to the correct height of the image
CGRect tabR = self.tabContoller.tabBar.frame;
CGFloat diff = tabR.size.height - tabBackgroundImage.size.height;
tabR.size.height = tabBackgroundImage.size.height;
tabR.origin.y += diff;
self.tabContoller.tabBar.frame = tabR;

ViewController問題は、通常のタブバーの高さである一定のスペースの上に s が描画されることだと思います。それを変更する方法はありますか?

4

4 に答える 4

7

UITabBarから拡張する独自のクラスを作成して、次の関数を使用してみてください。

- (CGSize)sizeThatFits:(CGSize)size {
    CGSize auxSize = size;
    auxSize.height = 54; // Put here the new height you want and that's it
    return auxSize;
}

これにより、UITabBarのサイズが必要なサイズに変更されます。シンプルで簡単。

于 2012-05-30T14:59:09.460 に答える
7

UITabBarController のサブビューをフルサイズのフレームに変更します。これは私にとってはうまくいきました:

[[yourTabBarController.view.subviews objectAtIndex:0] setFrame:CGRectMake(0, 0, 320, 480)];
于 2012-05-27T09:56:39.047 に答える
0

タブバーの高さと原点を変更してみましたが、正常に機能しました。viewcontrollerの高さを上げてみてください。

于 2012-05-24T13:36:20.607 に答える
0

@JoaT のようにフレームを変更してもうまくいかない場合は、View Controller のビューに正しい自動サイズ変更マスクが設定されていることを確認してください。

このSOリンクが役立つ場合があります。

于 2012-05-24T13:23:07.140 に答える