2013年5月26日日曜日

UISwitchのON/OFFスイッチとUISliderでスライダー

お手軽なControlsはもうこれくらいかなーということでUISwitchとUISlider。



まずはUISwitchから。
Storyboard右ペインのobjectsからSliderを貼付け。そしてヘッダーファイルにOutletとActionの両方で接続。ヘッダーファイルはこんな感じ。

//UISwitchのOutlet接続
@property (weak, nonatomic) IBOutlet UISwitch *testSwitch;
//UISwitchのAction接続
- (IBAction)switchturn:(id)sender;

ソースファイルはこのように記述。

//Action接続で自動生成される関数。
- (IBAction)switchturn:(id)sender {
    //スイッチがONになった場合の分岐
    if (_testSwitch.on == YES) {
        [self showalert:@"ON"];
    }else if (_testSwitch.on == NO)
    {
        [self showalert:@"OFF"];
    }
}

//Alertを表示する関数。引数はNSString型のmessage。Alertについてはこの記事参照
- (void)showalert:(NSString*)message
{
    UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"switch" 
                                             message:message 
                                             delegate:self 
                                             cancelButtonTitle:@"OK" 
                                             otherButtonTitles:nil, nil];
    [alert show];
}

実行してスイッチをONにすると、


OFFにするとこのように。


お次はUISlider。こちらは値を変更するスライダーを設定する。
こちらもStoryboardからSliderを貼り付ける。Sliderを選択した状態でAttributes Inspectorから設定値Minimum(最小値)・Maximum(最大値)・Current(初期値)を設定。
とりあえずMin0、Max100、Current0に設定。


そのあとOutletとActionで接続。ヘッダーファイルはこんな感じ。

//とりあえずLabelも貼っとく。
@property (weak, nonatomic) IBOutlet UILabel *testLabel;
@property (weak, nonatomic) IBOutlet UISlider *testSlider;

- (IBAction)SliderMove:(id)sender;

ソースファイルは以下のように。

//Actionの自動生成。
- (IBAction)SliderMove:(id)sender {
    //ひたすら分岐。valueはfloat型です。
    if (_testSlider.value == 100)
    {
        _testLabel.text =@"おこスティックファイナリアリティぷんぷんドリーム";
    }
    else if (_testSlider.value >90)
    {
         _testLabel.text =@"カム着火インフェルノォォォオオオウ";
    }
    else if (_testSlider.value >70)
    {
        _testLabel.text =@"ムカ着火ファイヤー";
    }
    else if (_testSlider.value >50)
    {
        _testLabel.text =@"激おこぷんぷん丸";
    }
    else if (_testSlider.value >30)
    {
        _testLabel.text =@"まじおこ";
    }
    else if (_testSlider.value >10)
    {
        _testLabel.text =@"おこ";
    }
    else
    {
        _testLabel.text =@"";
    } 
}

まあこうなるわな。

0 件のコメント:

コメントを投稿