[解決済み] UIButtonがタッチされた後でも選択状態を維持する
質問
ユーザーがボタンをクリックした後、ネットワーク操作を行っている間、そのボタンを押したままにしたいのです。ネットワーク操作が完了したら、ボタンをデフォルトの状態に戻したいのです。
を呼び出すことを試みました。
[UIButton setSelected:YES]
を呼び出してみました。
[UIButton setSelected:NO]
を呼び出します)が、何もしないようです。同じことを、私が
setHighlighted:
.
私は、ネットワークオペの間、選択された状態を示すために背景画像を交換してみることができたと思いますが、それはハックのように思えます。何か良い提案はありますか?
以下は私のコードのようなものです。
- (IBAction)checkInButtonPushed
{
self.checkInButton.enabled = NO;
self.checkInButton.selected = YES;
self.checkInButton.highlighted = YES;
[self.checkInActivityIndicatorView startAnimating];
[CheckInOperation startWithPlace:self.place delegate:self];
}
- (void)checkInCompletedWithNewFeedItem:(FeedItem*)newFeedItem wasNewPlace:(BOOL)newPlace possibleError:(NSError*)error;
{
[self.checkInActivityIndicatorView stopAnimating];
self.checkInButton.enabled = YES;
self.checkInButton.selected = NO;
self.checkInButton.highlighted = NO;
}
どのように解決するのですか?
の画像はどのように設定されていますか?
UIControlStates
の画像はどのように設定されていますか?の背景画像を設定していますか?
UIControlStateHighlighted
と同様に
UIControlStateSelected
?
UIImage *someImage = [UIImage imageNamed:@"SomeResource.png"];
[button setBackgroundImage:someImage forState:UIControlStateHighlighted];
[button setBackgroundImage:someImage forState:UIControlStateSelected];
もし、内部でタッチアップではなく、ボタンのタッチダウンイベントで選択状態を設定している場合、ボタンは実際にはハイライト+選択状態になるので、それも設定したいところでしょう。
[button setBackgroundImage:someImage forState:(UIControlStateHighlighted|UIControlStateSelected)];
編集する
コメントでの私の発言を要約し、あなたが投稿したコードに対処するために...あなたの背景画像を設定する必要があります完全な
UIControl
の状態で背景画像を設定する必要があります。あなたのコード スニペットによると、この制御状態は、ネットワーク操作の間、無効化 + 選択 + ハイライトされます。つまり、このようにする必要があるということです。
[button setBackgroundImage:someImage forState:(UIControlStateDisabled|UIControlStateHighlighted|UIControlStateSelected)];
を削除すると
highlighted = YES
を削除した場合、これが必要になります。
[button setBackgroundImage:someImage forState:(UIControlStateDisabled|UIControlStateSelected)];
写真を見てください。
関連
-
[解決済み] 基本的なUIButtonをプログラムで作成するには?
-
制御が非ボイド関数の終了に達する
-
[解決済み] UIButtonのタイトルを左揃えにするにはどうしたらよいですか?
-
[解決済み] iOS 13でダークモードをオプトアウトすることは可能ですか?
-
[解決済み] ぼかしの入ったオーバーレイビューの作成
-
[解決済み】UIButtonに複数行のテキストを追加する方法は?
-
[解決済み】UIButtonがターゲットアクションを全て削除する。
-
[解決済み】カラーティント UIButton イメージ
-
[解決済み] [Solved] UIButtonへのタッチイベントをプログラムでフェイクする方法は?
-
[解決済み] UIButton: 選択されたハイライト状態の画像を設定する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
クラッシュエラー libc++abi.dylib: NSException 型のキャッチできない例外で終了_allanGold のブログ - ProgrammerITS401
-
[iOS]コンパイルエラー:ld: アーキテクチャ x86_64 のシンボルが見つかりません。
-
[解決済み] Xcode 6.3 - 現在の iOS Development 証明書または保留中の証明書要求がすでにあります。
-
[解決済み] iOSのステータスバーの文字色を変更する方法
-
[解決済み] iOS7でスタイルUITableViewStyleGroupedを持つUITableViewの上部に余分なパディングがあるのはなぜですか?
-
[解決済み] Xcode 6のバグ:Interface Builderファイル内の不明なクラス
-
[解決済み] フレームワークを使用したiOSアプリがデバイス上でクラッシュ、dyld: ライブラリがロードされない、Xcode 6 Beta
-
[解決済み] iPhone UITextField - プレースホルダーの文字色を変更する
-
[解決済み] UITableViewCell、スワイプ時に削除ボタンを表示させる
-
[解決済み] iOS - UITextFieldの外側をタッチするとキーボードが外れる。