본문 바로가기

Application Programming Interface/Cocoa

[코코아 터치] 숫자를 다루는 3 컨트롤

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

  • UISwitch : 2개의 값 (Yes/No, 0/1) 중 하나를 선택할 때 사용하는 컨트롤
  • UISegmentedControl : 미리 정해진 n개의 값 중 하나를 선택할 때 사용하는 컨트롤
  • UISlide : 0부터 1 사이 중 무수히 많은 실수 중 하나를 선택할 때 사용하는 컨트롤

UISwitch


이벤트 처리 예

@synthesize uiSwitch;
@synthesize uiLabel;

@implement Test03
// ... 생략 ...

- (IBAction) UISwitch_ValueChanged : (UISwitch *) sender // UISwitch의 선택 값이 변경될 때마다 ValueChanged 이벤트가 발생되고, sender로는 터치된 컨트롤이 넘어온다.
{
    if([sender isOn]) // 터치한 후 변화된 값이 On인지 Off인지 확인한다. isOn 메시지가 그 역할을 한다.
    {
        //TODO: On일 때 처리
        [self.uiLabel setText: @"On 되었습니다."];
    }
    else
    {
        // TODO: Off일 때 처리
        [self.uiLabel setText: @"Off 되었습니다."];
    }
}
@end

UISegmentedControl


이벤트 처리의 예

@synthesize uiSegmentedControl;
@synthesize uiLabel;

@implement Test03
//... 생략 ...
- (IBAction) UISegmentedControl_ValueChanged : (UISegmentedControl *) sender // UISegmentedControl의 선택 값이 변경될 때마다 ValueChanged 이벤트가 발생하고, sender로는 터치된 컨트롤이 넘어온다.
{
    switch([sender selectedSegmentIndex]) // 몇 번째 시그먼트가 터치되었는지를 확인하기 위해 selectedSegmentIndex 메시지를 사용한다. 첫 시그먼트는 0부터 시작한다.
    {
        case 0:
            // TODO: 0번 시그먼트일 때
            [self.uiLabel setText: @"0번째 Segment가 터치되었습니다."];
            break;
        case 1:
            // TODO: 1번 시그먼트일 때
            [self.uiLabel setText: @"1번째 Segment가 터치되었습니다."];
            break;
        case 2:
            // TODO: 2번 시그먼트일 때
            [self.uiLabel setText: @"2번째 Segment가 터치되었습니다."];
            break;
        default:
            [self.uiLabel setText: @"??"];
            break;
    }
}
@end

UISlider


이벤트 처리의 예

@synthesize uiSlider;
@synthesize uiLabel;

// ... 생략 ...
- (IBAction) UISlider_ValueChanged : (UISlider *) sender // 마찬가지로 UISlider의 값이 변경될 때마다 ValueChanged 이벤트가 발생하고, sender로는 터치된 컨트롤이 넘어온다.
{
    NSString * temp = [NSString stringWithFormat: @"선택된 값은 %f (%3f%%)입니다.", [sender value], [sender value]*100];
    [self.uiLabel setText: temp];
}
@end