1

単一のタブ (UITabbarItem) の高さを上げて、残りのタブを UITabBar で同じ高さに保つ方法はありますか。

4

4 に答える 4

5

私はあなたがインスタグラム(以前のインスタグラム)またはtabBarItemsの1つが他のものよりはるかに大きかったキークのようなインターフェースを作ろうとしていると推測しています。

2つのオプションがあります。

  1. アイテムの1つをはるかに大きくしてcustomTabBarを作成します。(これはお勧めしません

  2. 既存のtabBarItemsをそのまま保持します。カスタムのものは必要ありません。必要な高さと形状でを作成し、UIButtonそれをtabBarItemの上に追加するだけです。

次に、UITabBarControllerのサブクラスを作成し、UITabBarの上にカスタムUIButtonを追加します。

UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom];
button.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height);
[button setBackgroundImage:buttonImage forState:UIControlStateNormal];
[button setBackgroundImage:highlightImage forState:UIControlStateHighlighted];

CGFloat heightDifference = buttonImage.size.height - self.tabBar.frame.size.height;
if (heightDifference < 0)
    button.center = self.tabBar.center;
else
{
    CGPoint center = self.tabBar.center;
    center.y = center.y - heightDifference/2.0;
    button.center = center;
}

[self.view addSubview:button];
于 2012-09-28T05:09:31.440 に答える
1

私の経験から、UITabBarクラスを拡張する必要があり、UITabBarItemsを初期化するときに、それに応じて高さを設定します。また、UITabBarの背景画像を作成します。

于 2012-09-28T05:07:33.970 に答える
1

customTabBar を使用できます。ここでは、そのサンプルとその優れたクラスを取得でき、サイズに応じて tabBar アイテムを設定できます。

リンク

于 2012-09-28T06:20:27.327 に答える
1

Swift 2.0 では、UITabBarController のサブクラスを持ち、次のコードを使用して UIButton を追加できます。

let button: UIButton = UIButton(type: UIButtonType.Custom)
button.backgroundColor = UIColor.clearColor()
let buttonImage: UIImage = UIImage(named: "logo")!
let buttonImageHighlighted: UIImage = UIImage(named: "logoHighlighted")!
button.frame = CGRectMake(0.0, 0.0, buttonImage.size.width, buttonImage.size.height);
button.setBackgroundImage(buttonImage, forState: UIControlState.Normal)
button.setBackgroundImage(buttonImageHighlighted, forState: UIControlState.Highlighted)

let heightDifference:CGFloat = buttonImage.size.height - self.tabBar.frame.size.height;
if (heightDifference < 0) {
    button.center = self.tabBar.center;
} else {
    var center: CGPoint = self.tabBar.center;
    center.y = center.y - heightDifference/2.0;
    button.center = center;
}

self.view.addSubview(button)
于 2015-12-10T21:38:54.223 に答える