3

次のように、カスタム UIBarButtonItem を作成しています。

    UIImage *originalImage = [UIImage imageNamed:@"button"];
    UIImage *buttonImage = [originalImage stretchableImageWithLeftCapWidth:10 topCapHeight:5];

    UIButton *toolbarB = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 65, 29)];
    [toolbarB setTitle:title forState:UIControlStateNormal];
    [toolbarB.titleLabel setFont:[UIFont fontWithName:kLatoBold size:17.0f]];
    [toolbarB setBackgroundImage:buttonImage forState:UIControlStateNormal];
    [toolbarB addTarget:target action:selector forControlEvents:UIControlEventTouchUpInside];

    UIBarButtonItem *barButtonItem = [[UIBarButtonItem alloc] initWithCustomView:toolbarB];

使用するカスタム フォントに応じて、UIBarButtonItem をコントローラーの navigationItem に挿入した後、以下のいずれかの結果が得られます。

2 番目の結果のボタン テキストが本来よりも高く「浮く」のはなぜですか? 最初のボタンは見栄えがしますが、2 番目のボタンではテキストが不自然に配置されます... 私のフォントに問題があるのでしょうか?

ボタンのテキストが正しく表示される

ここに画像の説明を入力

煩わしいフローティング ボタン テキストが高すぎます。

ここに画像の説明を入力

4

1 に答える 1

1

一部のフォントで発生します。理由はわかりませんがUIEdgeInsets、テキストを少し押し下げるために使用することをお勧めします。フォントを修正できないと思います。

同様のソリューションへのリンクは次のとおりです。UIButton のテキストと画像を imageEdgeInsets と titleEdgeInsets で揃える

于 2013-05-25T00:33:37.370 に答える