27

プロジェクトにカスタム スイッチを実装する必要があります。現在、私が見つけたのは、下の画像に示すように実装する方法で UISwitch を変更できないことです。投稿をたどり、stackoverflow や他のブログをグーグル検索しましたが、必要な解決策が見つかりませんでした。1 つの方法は、この投稿のように UISegmented コントロールを使用することですが、それでも私の問題は解決しません。

ここに画像の説明を入力

助けてくれてありがとう

4

4 に答える 4

26

独自のスイッチを作成するのは難しくありません。UISwitch は、2 つの状態を持つコントロール (基本的にはメッセージを送信する単なるビュー) です。次のように独自のカスタム コントロールを設定できます。

  • コンテナー ビュー: 角が丸くなっている単純なビュー (cornerRadiusビューのレイヤーを設定) と背景色

  • 左の画像: 左側に表示したい画像を表示する画像ビュー、つまり例のチェックマーク

  • 右の画像: 右側に表示したい画像を表示する画像ビュー、つまり例の X マーク

  • スライダー: 他の 2 つの画像ビューの上に設定された、スイッチのスライダー部分を示す画像ビュー

ユーザーがコントロールをタップまたはスワイプすると、Core Animation を使用してスライダーをスイッチの反対側に移動し、コントロールの状態を更新して、新しい状態の背景色にすばやくフェードします。コントロールのアクションをターゲットに送信します。

于 2013-04-29T15:02:18.190 に答える
2

-[UISwitch setOnImage:]とについて知っていますよ-[UISwitch setOffImage:]ね?また-[UISwitch setTintColor]。私が見ることができる唯一の欠点は、スイッチ自体が標準の iOS スイッチ (丸いボタン) になることですが、それ以外の場合、これは最も iOS に似たソリューションになります。

独自の on/offImage を実装する場合は、サイズの制限と、イメージのスイッチ側が凹面になっていることに注意してください。 tintColorスイッチの残りの部分に配色を反映させるために使用できます。イベントを追跡したいvalueChanged場合があるので、色合いを変更します。

質問に表示する正確な外観 (正方形のスイッチ ボタン) が必要な場合は、@Caleb が提案したように、おそらくカスタム コントロールを使用することをお勧めします。

于 2013-06-27T17:39:02.740 に答える
0

コントロールに有効と無効の2つの状態のみを持たせたいだけのようです。

これを行う簡単な方法は、2 つの png 画像を作成し、カスタム UIButton を背景画像とともに使用して、ボタンがタップされるたびにこれら 2 つの画像を置き換えることです。

これはあなたがやろうとしていることですか、それとも私は何かを誤解しましたか?

于 2013-04-29T14:55:46.797 に答える