プロジェクトにカスタム スイッチを実装する必要があります。現在、私が見つけたのは、下の画像に示すように実装する方法で UISwitch を変更できないことです。投稿をたどり、stackoverflow や他のブログをグーグル検索しましたが、必要な解決策が見つかりませんでした。1 つの方法は、この投稿のように UISegmented コントロールを使用することですが、それでも私の問題は解決しません。
助けてくれてありがとう
プロジェクトにカスタム スイッチを実装する必要があります。現在、私が見つけたのは、下の画像に示すように実装する方法で UISwitch を変更できないことです。投稿をたどり、stackoverflow や他のブログをグーグル検索しましたが、必要な解決策が見つかりませんでした。1 つの方法は、この投稿のように UISegmented コントロールを使用することですが、それでも私の問題は解決しません。
助けてくれてありがとう
独自のスイッチを作成するのは難しくありません。UISwitch は、2 つの状態を持つコントロール (基本的にはメッセージを送信する単なるビュー) です。次のように独自のカスタム コントロールを設定できます。
コンテナー ビュー: 角が丸くなっている単純なビュー (cornerRadius
ビューのレイヤーを設定) と背景色
左の画像: 左側に表示したい画像を表示する画像ビュー、つまり例のチェックマーク
右の画像: 右側に表示したい画像を表示する画像ビュー、つまり例の X マーク
スライダー: 他の 2 つの画像ビューの上に設定された、スイッチのスライダー部分を示す画像ビュー
ユーザーがコントロールをタップまたはスワイプすると、Core Animation を使用してスライダーをスイッチの反対側に移動し、コントロールの状態を更新して、新しい状態の背景色にすばやくフェードします。コントロールのアクションをターゲットに送信します。
-[UISwitch setOnImage:]
とについて知っていますよ-[UISwitch setOffImage:]
ね?また-[UISwitch setTintColor]
。私が見ることができる唯一の欠点は、スイッチ自体が標準の iOS スイッチ (丸いボタン) になることですが、それ以外の場合、これは最も iOS に似たソリューションになります。
独自の on/offImage を実装する場合は、サイズの制限と、イメージのスイッチ側が凹面になっていることに注意してください。 tintColor
スイッチの残りの部分に配色を反映させるために使用できます。イベントを追跡したいvalueChanged
場合があるので、色合いを変更します。
質問に表示する正確な外観 (正方形のスイッチ ボタン) が必要な場合は、@Caleb が提案したように、おそらくカスタム コントロールを使用することをお勧めします。
コントロールに有効と無効の2つの状態のみを持たせたいだけのようです。
これを行う簡単な方法は、2 つの png 画像を作成し、カスタム UIButton を背景画像とともに使用して、ボタンがタップされるたびにこれら 2 つの画像を置き換えることです。
これはあなたがやろうとしていることですか、それとも私は何かを誤解しましたか?