2011年2月16日水曜日

UISwitch をコードで描画してみたけれども

- (void)showSwitch{

// center で描画すると座標が真ん中なのがね。。。
//  UISwitch * mySwitch = [[[UISwitch alloc] init] autorelease];
//  mySwitch.center = CGPointMake(200, 300);

// と思って CGRect にしたんだけど、UISlider と違って、
// サイズを指定しても背景領域もヒット領域も見た目も変化ないみたい?
  CGRect frame = CGRectMake(100.0, 100.0, 50.0 , 50.0 );
  UISwitch * mySwitch = [[[UISwitch alloc] initWithFrame:frame]autorelease];

  mySwitch.backgroundColor = [UIColor blueColor]; // スイッチの四隅に少し色がつくだけ?
  mySwitch.on = YES;
  [mySwitch addTarget:self action:@selector(showSwitchChange:) forControlEvents:UIControlEventValueChanged];

  // つまんないから縦にしてみたw
  CGAffineTransform scale  = CGAffineTransformMakeScale(1.0, 1.0);
  CGAffineTransform trans  = CGAffineTransformMakeRotation(270.0f * M_PI / 180.0f);
  CGAffineTransform concat = CGAffineTransformConcat(scale,trans);
  [mySwitch setTransform:concat];
  
  [self.view addSubview:mySwitch];
  
}
  // アクションセレクターにもだいぶ慣れた(同じ事しかしてないけど)
-(void)showSwitchChange:(id)sender{
  NSString * message = [[NSString alloc] initWithFormat:@"Switch : %d",[sender isOn]];
  
  UIAlertView * alert = [[UIAlertView alloc] initWithTitle:@"スイッチは"
                                                   message:message
                                                  delegate:self
                                         cancelButtonTitle:@"OK"
                                         otherButtonTitles:nil];
  [alert show];
  [alert release];
  [message release];  
}

スイッチも書いてなかったみたいなので。コメントにも書いたけど、UISwitchってUISliderと違ってサイズを指定してもヒット領域とかに変化が見られないみたい?書き方が悪い訳ではないと思うんだけど。。。

0 件のコメント:

コメントを投稿