スイッチの基本をマスター:UISwitch

スイッチとは

スイッチとは、ONとOFFという2つの状態を切り替えられるパーツです。
UISwitch

・スイッチを切り替えたときに、それを探知して何か動作を起こすこと
・スイッチの状態を読み取って、動作を場合分けすること

この2点が主要な使い方となります。

スイッチのON/OFFで画像を切り替えるサンプルプログラム

まず、xibファイルでSwitchを配置します。
また、スイッチの上にImage Viewも配置して下さい。
sw01

 

ヘッダーファイル(.h)に定義します。

#import <UIKit/UIKit.h>

@interface TestViewController : UIViewController
{
    UIImageView *iv;
    UISwitch *sw;
}

@property (nonatomic, retain) IBOutlet UIImageView *iv;
@property (nonatomic, retain) IBOutlet UISwitch *sw;

- (IBAction)SwitchChanged:(id)sender;

@end

ソースファイル(.m)に追記します。

#import "TestViewController.h"

@interface TestViewController ()

@end

@implementation TestViewController

@synthesize iv, sw;

-(IBAction)SwitchChanged:(id)sender{
    
    //スイッチがONとOFFの場合で場合分け
    if(sw.on){
        
        //ここにスイッチがONになったときにやりたいことを記述
        NSLog(@"スイッチがONになりました");
        iv.image = [UIImage imageNamed:@"swon.png"];
        
    }else{
        
        //ここにスイッチがOFFになったときにやりたいことを記述
        NSLog(@"スイッチがOFFになりました");
        iv.image = [UIImage imageNamed:@"swoff.png"];
        
    }
}

- (void)dealloc {
    [iv release];
    [sw release];
    [super dealloc];
}

- (void)viewDidLoad
{
    [super viewDidLoad];
	// Do any additional setup after loading the view, typically from a nib.
    
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end

関連付けします。スイッチボタンを選択し、コネクションインスペクタを開きます。

まず、IBActionは「Value Changed」と『Switch Changed』を結びつけて下さい。
sw02

次に、IBOutletの関連付けをします。『sw』と結びつけて下さい。
sw03

ImageViewについては、IBOutletの『iv』と結びつけて下さい。

今回のサンプルでは、2種類の画像を取り込んでおきます。
Image Viewのサイズは240×120にしてみました。
・swon.png
swon
・swoff.png
swoff

これで、シミュレータを実行してみます。
スイッチを切り替えると以下のように画像が変わります。
sw-on sw-off

ポイント

スイッチの状態は、

スイッチ名.on

で判別します。

結果はBOOL値で、
スイッチがONのときはYES、OFFのときはNOとなります。

コメントを残す

サブコンテンツ

このページの先頭へ