2012-10-14 3 views
2

iOS에서 UIToolbar을 사용 중입니다. 오른쪽에서 슬라이드하여 '도착'버튼을 새로 고칩니다. 막대의 '위치'에 직접 액세스 할 수있는 방법이 있습니까? 현재 원하는 효과 가까이지고 지저분한 해결 방법이 있지만 코어 애니메이션을 사용하여 이동하는 방법이 있기를 바랬으므로 'EaseInEaseOut'유형의 타이밍 기능을 구현할 수있었습니다. 어떤 아이디어?UIToolbar Item은 어떻게 이동합니까?

- (void) testPart1 { 
    [NSTimer scheduledTimerWithTimeInterval:(0) target:self selector:@selector(testPart2:) userInfo:[NSNumber numberWithInt:500] repeats:NO]; 
} 

- (void) testPart2:(NSTimer*)sender { 
    int countdown = [sender.userInfo integerValue]; 
    theSpace.width = 10+(int)countdown; 
    itemTestButton.width = 49; 
    itemTestButton.width = 50; 
    countdown -= 5; 
    if(countdown>0) 
    [NSTimer scheduledTimerWithTimeInterval:(0.004) target:self selector:@selector(testPart2:) userInfo:[NSNumber numberWithInt:countdown] repeats:NO]; 
} 

여기에 고정 스페이스 바 버튼 항목의 너비를 변경, 0으로 카운트 다운하는 NSTimer을 사용했다 전제. 실제 버튼의 너비를 변경해야만 작동한다는 것을 알았습니다. 그렇지 않으면 '애니메이션'이 발생하지 않았습니다. 지저분하다. 누군가 깨끗한 방법을 가져야한다. 내가 것 막대 버튼으로 정확하게 렌더링되는 UIToolbar의 하위 뷰 같은 일반 UIView를 추가 제안

답변

1

는 (기존 버튼 renderInContext:를 호출하여 얻을 수) 한 후 적절한 위치에 해당 뷰를 애니메이션. 그런 애니메이션의 완료 블록에서 실제 버튼을 설정하고 removeFromSuperview 애니메이션보기를 설정할 수 있으며 사용자는 구별 할 수 없을 것입니다.

관련 문제