5

iPad アプリ (iOS 5.1) の上部にある UIToolbar に UIBarButtonItem があります。Interface Builder で幅を 65 に設定しています。スタイルは「ボーダー」で、識別子は「カスタム」です。押すと、テキスト ラベルと色合いが変わります。

    [btnA setTitle:@"State A"];
    [btnA setTintColor:[UIColor STATE_A_COL];

などなど、さまざまなラベルや色を取り入れています。これは問題なく機能し、さまざまな状態のタイトルの長さがまったく異なっていても、ボタンのサイズは変更されませんでした。

次に、このコードを追加して、起動時にフォントを設定しました。

UIFont * futura = [UIFont fontWithName:@"Futura" size:13];
NSDictionary *attributes = [NSDictionary dictionaryWithObject:futura
                                                       forKey:UITextAttributeFont];
[btnA setTitleTextAttributes:attributes forState:UIControlStateNormal];

これで、ボタンは起動時のタイトルの幅に合わせてサイズ変更されます。タイトルが変わるとサイズが変わります。サイズをロックするにはどうすればよいですか?ここでの相互作用がわかりません。ボタンについては何もせず、タイトルのフォント属性を変更しただけだと思いました。

プロパティを明示的に設定しようとしましたwidth

[btnA setWidth:65.0];

再び役に立たない。

4

1 に答える 1

6

プロパティをUIBarButtonItem使用してサイズ変更を停止possibleTitlesし、目的の最大幅に関するヒントを提供しました。

[btnA setPossibleTitles:[NSSet setWithObjects:@"State A', @"B", @"Final state", nil]];

これは機能しましたが、幅を希望のサイズに明示的に設定できないため、質問を開いたままにしています。

于 2012-10-09T19:29:53.890 に答える