IOS UIButton 사용법 상세 설명

5859 단어
이 코드는 UIButton을 동적으로 만들었고 자주 사용하는 속성을 열거했다.여러분께 도움이 되었으면 좋겠습니다.//여기 둥근 사각형 단추 UIButton*button1 = [UIButton button WithType: UIButtonTypeRoundedRect];정의할 수 있는 button 유형은 다음과 6가지로//typedef enum {//UIButton TypeCustom = 0, 사용자 정의 스타일//UIButton Typedef enum {//UIButton TypeDetail Disclosure, 파란색 작은 화살표 버튼, 주로 상세한 설명용//UIButton Type InfoLight, 밝은 색 느낌표//UIButton Type RoundeRoundedeRoudededededededededededed Rectecty Rectecty Rectectunum, 둥 어두운 색 느낌표/////어두운 색 느낌표//////////UIButton Tton뷰에 button의 위치를 지정합니다. button 1.frame = CGRectMake(20, 20, 280, 40); //button 배경색 button 1.backgroundColor = [UIColor clearColor]; //button 채움 그림 설정//[button1 setImage: [UIImage imageNamed: @ "btng.png"] forState: UIControlStateNormal];button 제목 설정 [button 1 setTitle:@ "클릭"forState: UIControlStateNormal];/*forState: 이 매개 변수의 역할은 단추의 문자나 그림이 어떤 상태에서 나타나는지 정의하는 것입니다 *////다음은 몇 가지 상태입니다//enum{//UIControlStateNormal = 0, 일반 상태 표시//UIControlStateHighlighted = 1 <<0, 하이라이트 상태 표시//UIControlStateDisabled = 1 <<<<1, 비활성화된 상태 표시//UIControlStateSelected = 1 <<2, 선택된 상태//UIControlStateApplication = 0x00FF0000, 응용 프로그램 로고가 있을 때//UIControlState Reserved = 0xFF00000은 내부 프레임에 상관없이/*기본적으로 단추가 밝을 때 그림의 색을 진하게 그립니다. 만약 이 아래의 이 속성이 no로 설정된다면 * 이 기능을 제거할 수 있습니다. */button 1.adjustsImageWhenHighlighted = NO;/*위의 경우와 마찬가지로 기본적으로 단추가 비활성화되면 그림이 깊게 그려집니다. NO를 설정하면 설정을 취소할 수 있습니다. */button 1.adjustsImageWhenDisabled = NO;/* 아래의 이 속성을 yes로 설정한 상태에서 버튼을 누르면 빛이 납니다*/button 1.showsTouchWhenHighlighted = YES; /* button에 이벤트를 추가합니다. 이벤트는 여러 가지가 있습니다. 저는 단독으로 블로그를 열어 소개할 것입니다. 다음 시간은 단추를 누르고 손가락이 화면을 떠날 때 이 이벤트를 터치하는 것입니다. 웹의 클릭 이벤트와 같습니다.이 이벤트를 터치한 후에 butClick: 이 방법을 실행합니다.addTarget:self는 이 방법은 이 클래스에서 다른 클래스의 바늘*/[button 1 addTarget:self action:@selector(butClick:) forControlEvents:UIControlEventTouchUpInside]를 전송할 수 있음을 의미합니다.//컨트롤 표시 [self.view addSubview:button 1];주의: [button1 addTarget:self action:@selector(alarmTimeDone:) forControl Events:UIControl EventTouchUpInside];Target:self는 self에 연결되어 있습니다. 일반적으로 action:@selector(alarm Time Done:) 시간 처리 함수 for Control Events: UIControl Event Touch UpInside 컨트롤 이벤트 처리 메시지//취소 단추가 추가된 모든 이벤트: (이것은 비교적 중요합니다. 두 이벤트를 추가하면 두 이벤트가 모두 터치됩니다) [btn remove Target:nil action:nil action:nil for Control Events: UIControl Event Touch Inside]release UIButton은 언제 해제됩니까?dealloc에서 UIButton 대상에 대해release 작업을 하는지 여부는 UIButton이 초기화되는 방식에 달려 있습니다.[UIButtonbuttonWithType:UIButtonTypeRoundedRect] 이런 방식을 사용한다면release 조작을 할 필요가 없다. 왜냐하면 이런 방식은 자동으로 방출되기 때문이다.[[UIButton alloc] init] 방식을 사용하는 경우 release 해제 작업을 능동적으로 수행해야 합니다.
IOS UIButton 이벤트:
UIControlEventTouchDown
단일 터치 누르기 이벤트: 사용자가 화면을 터치하거나 새 손가락이 떨어질 때가 있습니다.
UIControlEventTouchDownRepeat
여러 개의 터치로 이벤트를 누르면 터치 계수가 1보다 크다. 사용자가 두 번째, 세 번째, 네 번째 손가락을 눌렀을 때.
UIControlEventTouchDragInside
컨트롤 창에서 터치해서 드래그할 때
UIControlEventTouchDragOutside
컨트롤 창 밖으로 터치해서 드래그할 때
UIControlEventTouchDragEnter
컨트롤 창 밖으로 터치해서 내부로 드래그할 때
UIControlEventTouchDragExit
컨트롤 창 내부에서 외부로 터치할 때
UIControlEventTouchUpInside
모든 컨트롤 안에서 터치하고 들어올리는 이벤트입니다.
UIControlEventTouchUpOutside
컨트롤 밖에서 터치해서 들어올리는 모든 이벤트 (터치가 컨트롤 내부와 시작해야 알림을 보냅니다.)
UIControlEventTouchCancel
모든 터치 취소 사건, 즉 한 번의 터치가 손가락을 너무 많이 놓아서 취소되거나 자물쇠가 잠기거나 전화 호출이 끊긴다.
UIControlEventTouchChanged
컨트롤의 값이 바뀌었을 때 알림을 보냅니다.슬라이더, 세그먼트 컨트롤, 그리고 기타 값을 얻는 컨트롤입니다.슬라이더 컨트롤러가 언제 알림을 보낼지, 슬라이더가 내려갈 때 보낼지, 드래그될 때 보낼지 설정할 수 있습니다.
UIControlEventEditingDidBegin
텍스트 컨트롤에서 편집을 시작할 때 알림을 보냅니다.
UIControlEventEditingChanged
텍스트 컨트롤의 텍스트가 바뀔 때 알림을 보냅니다.
UIControlEventEditingDidEnd
텍스트 컨트롤에서 편집이 끝났을 때 알림을 보냅니다.
UIControlEventEditingDidOnExit
텍스트 컨트롤에서 Enter 키를 누르거나 동등한 동작으로 편집을 끝낼 때 알림을 보냅니다.
UIControlEventAlltouchEvents
모든 터치 사건을 통지합니다.
UIControlEventAllEditingEvents
텍스트 편집에 대한 모든 이벤트를 알립니다.
UIControlEventAllEvents
모든 이벤트에 알림
인스턴스:
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
    // btn.frame = rect_screen;
    btn.frame = CGRectMake(frame.size.width - 20.0f - 30.0f, frame.size.height - 50.0f, 30.0f, 50.0f);
    btn.backgroundColor = [UIColor blueColor];
    
    // UIControlEventTouchDragInside
    // UIControlEventTouchDragOutside
    
    [btn addTarget:self action:@selector(dragInside) forControlEvents:UIControlEventTouchDragInside];    
    [btn addTarget:self action:@selector(dragOutside) forControlEvents:UIControlEventTouchDragOutside];    
    // dismissView
    [btn addTarget:self action:@selector(upInside) forControlEvents:UIControlEventTouchUpInside];    
    [self addSubview:btn];    
    return self;
}

- (void)dragInside
{
    NSLog(@"dragInside...");
}

- (void)dragOutside
{
    NSLog(@"dragOutside...");
}
- (void)upInside
{
    NSLog(@"upInside...");
}

긴 누르기 이벤트
UIButton *aBtn=[UIButton buttonWithType:UIButtonTypeCustom];
    [aBtn setFrame:CGRectMake(40, 100, 60, 60)];
    [aBtn setBackgroundImage:[UIImage imageNamed:@"111.png"]forState:UIControlStateNormal];
    //button    
    [aBtn addTarget:self action:@selector(btnShort:)forControlEvents:UIControlEventTouchUpInside];
    //button    
    UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithTarget:selfaction:@selector(btnLong:)]; 
    longPress.minimumPressDuration = 0.8; //      
    [aBtn addGestureRecognizer:longPress];

-(void)btnLong:(UILongPressGestureRecognizer*)gestureRecognizer{
    if ([gestureRecognizer state] == UIGestureRecognizerStateBegan) {
        NSLog(@"    ");
        UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"  " message:@"        ?" delegate:selfcancelButtonTitle:@"  " otherButtonTitles:@"  ", nil];
        [alert show];
    }
}

좋은 웹페이지 즐겨찾기