2011-08-21 4 views
1

버튼을 눌렀을 때 2 픽셀 아래로 이동해야하고 버튼을 누르면 원래 위치로 다시 이동해야하는 버튼이 있습니다. touchesBegantouchesEnded을 시도했지만 버튼으로 작동하지 않습니다. 나는 또한 버튼을 IUView로 바꾸고 버튼의 메서드를 touchesEnded에 호출하려고 시도했지만 버튼이 이동하기 전에 이상한 지연을 주었다. 어떤 아이디어?눌렀을 때 버튼 위치가 변경됨

답변

1

터치 다운 및 터치 업 이벤트를 사용해 보셨습니까? 터치 다운시 버튼 위치를 이동하고 터치 업 (내부 및 외부)에서 초기 값으로 복원 해보십시오.

편집 :

- (IBAction)moveButtonDown:(id)sender 
{ 
    UIButton *btn = (UIButton *)sender; 
    btn.frame = CGRectMake(btn.frame.origin.x, btn.frame.origin.y + 2, btn.frame.size.width, btn.frame.size.height); 
} 

- (IBAction)moveButtonUp:(id)sender 
{ 
    UIButton *btn = (UIButton *)sender; 
    btn.frame = CGRectMake(btn.frame.origin.x, btn.frame.origin.y - 2, btn.frame.size.width, btn.frame.size.height); 
} 

지정 moveButtonDown : 버튼에 "터치 다운"이벤트와 moveButtonUp : 여기에 코드 예제의 모두는 "터치 업 내부"와 "위로 터치 외부"이벤트. fichek 감사합니다, 여기에 대신 CGRectMake의 CGRectOffset있는 솔루션입니다 :

- (IBAction)moveButtonDown:(id)sender 
{ 
    UIButton *btn = (UIButton *)sender; 
    btn.frame = CGRectOffset(btn.frame, 0, 2); 
} 

- (IBAction)moveButtonUp:(id)sender 
{ 
    UIButton *btn = (UIButton *)sender; 
    btn.frame = CGRectOffset(btn.frame, 0, -2); 
} 
나는이 대신 CGRectMake의 CGRectOffset을 사용하는 것이 좋습니다 것
+0

, 훨씬 짧은 구문 : –

+0

EDIT) 테스트 적어도 여기, 작업 또는 그렇습니다. 어느 쪽이든 작동해야합니다 :) – fbrozovic

관련 문제