2

Xcode 5 のストーリーボードを使用して、アプリケーション、iOS SDK 7.0 を作成しています。

ボタンをビューにドラッグしました。ボタンにデフォルトで「A」を表示したい。ボタンのプロパティは次のとおりです: タイプ: システム、状態構成: デフォルト、タイトル: プレーン

選択状態でボタンに「B」を表示したい。したがって、変更されたボタンのプロパティ: State Config: Selected

ボタンの属性インスペクタのコントロールの下に、Selected というプロパティがあります。Selected をチェックすると、「B」を表示する代わりに、A の上にマーカーのようにハイライト表示されます。つまり、文字は表示されません。

XCODEで実行しました。ボタンが選択されていない場合、期待どおり「A」が表示されますが、ボタンを選択すると、B が表示されず、ボタンのテキスト部分が水色で強調表示されます。また、コントロールの下で強調表示されたコンテンツを選択したことはありません。

状態を正しく表示できるように、これをどのように解決できますか?

4

3 に答える 3

6

ボタンのタイトルをコードで設定する場合、iOS 7.1 では、さまざまなボタンの状態のタイトルを明示的に設定する必要があることがわかりましたが、iOS 7.0 では、UIControlStateNormal のタイトルを設定すると、他のボタンの状態にも対応します。

// works on 7.0
[self.ibActionButton setTitle:NSLocalizedString(@"Register", nil) forState:UIControlStateNormal];

// works on 7.1
[self.ibActionButton setTitle:NSLocalizedString(@"Register", nil) forState:UIControlStateNormal|UIControlStateDisabled];
于 2014-03-12T03:10:23.073 に答える
5

ストーリーボードでState Config を Selected に設定している間は、ボタンのタイトルを「B」に設定する必要があります。次に、アクションをボタンの Touch Up Inside イベントに接続する必要があります。そのアクション内で、ボタンのプロパティを切り替えます。selected

属性インスペクターで「選択済み」をチェックすると、ボタンの初期選択状態が「はい」に設定されます。XCode は、その状態でボタンがどのように見えるかも示します。

于 2013-10-05T14:41:45.857 に答える
3

これは XCODE 5 のバグであることがわかりました。つまり、ボタンの Control の下で選択されたプロパティをチェックすると、Button で選択された状態が表示されません。アプリケーションを実行するシミュレーターで動作します。ボタンのターゲット アクションを実行し、以下のように選択状態を切り替える必要があります。

 - (IBAction)flipButton:(UIButton *)sender {
      sender.selected=!sender.isSelected;
   }
于 2013-10-05T14:45:17.883 に答える