次の項目でカスタム UISwitch を作成できることがわかりました。
- UIScrollView
- UIButton
- 2 つの UILabels
- 背景画像
- ブール値
#import <QuartzCore/QuartzCore.h>
まず、QuartzCore.framework をプロジェクトとビュー コントローラーに追加する必要があります。
次に、Interface Builder を使用してビューに UIScrollView を追加します。ScrollView はカスタム UISwitch になります。次に、ボタンと 2 つのラベルを ScrollView に追加します。一方のラベルは「はい」用で、もう一方は「いいえ」用です。
ボタンに画像を追加し、そのタイプをカスタムに設定します。これは私が使用する画像です:
画像の青と白の領域にラベルを配置します。ScrollView を調整して、画像の青い部分とつまみを表示するのに十分な大きさにします。
次の行を viewDidLoad に追加します。
self.mySwitch.layer.cornerRadius = 13.5;
mySwitch は ScrollView の名前で、13.5 は ScrollView の半分の高さです。上記のステートメントは、UISwitch のように両端が丸くなるように ScrollView を変更します。
カスタム スイッチをアクティブにするには、ボタンの "Touch Up Inside" イベントを IBAction に関連付ける必要があります。イベントハンドラーで使用するコードは次のとおりです。
-(IBAction)mySwitchButton:(id)sender {
self.myValue = !self.myValue;
CGPoint scrollPoint = CGPointMake((self.myValue)? 43.0: 0, 0.0);
[mySwitch setContentOffset:scrollPoint animated:YES];
}
myValue はスイッチの状態を含むブール変数で、43.0 はスイッチをオフの位置に置くために画像を移動する必要があるポイントの数です。
それだけです!