2014-02-16 3 views
0

이미지를 클릭하면 1 초 또는 2 초 동안 다른 이미지가 나타납니다.이미지를 클릭하면 생생하게 볼 수 있습니다.

나는 두 이미지 (UIImage)를 가지고 있는데, 하나는 눌렀고 다른 하나는 누르지 않은 이미지입니다.

이와 비슷한가요? :

[UIView animateWithDuration: 0.2 delay: 0.0 options: UIViewAnimationOptionAutoreverse animations:^{ 
    pressed.alpha = 1.0; 
    unPressed.alpha = 0.0; 
}completion:^(BOOL finished){ 
    pressed.alpha = 0.0; 
    unPressed.alpha = 1.0; 
}]; 

하지만 눌린 이미지는 볼 수 없습니다.

편집 : 나는 그것을 클릭을 누르면 이미지를 표시하지만 그때 밀리지 않은 이미지가 나타나지 않을 때 때문에 내 문제는 내가 생각하는있는 UIImageView에 이미지를 asign하는 것입니다

나는 것과 유사한 싶습니다 :

[UIView animateWithDuration: 2.0 delay: 0.0 options: UIViewAnimationOptionAutoreverse animations:^{ 
    pressed.alpha = 1.0; 
    unPressed.alpha = 0.0; 
    self.imageButton.image = pressed.image; 
}completion:^(BOOL finished){ 
    pressed.alpha = 0.0; 
    unPressed.alpha = 1.0; 
    self.imageButton.image = unPressed.image; 
}]; 
+0

애니메이션 재생 시간을 0.2로 설정 했으므로 완료되기 전에 오랫동안 표시되지 않습니다. 이미지가 2 초 동안 나타나게하려면 animateWithDuration을 2로 변경하십시오. –

+1

편집 후 : 게시 한 두 번째 코드의 문제가 많습니다.하지만 무엇을하려고합니까? 버튼 이미지를 2 초 동안 표시하거나 페이드 인하려면 원하십니까? –

+0

버튼을 클릭 할 때 버튼과 같이 2 초 동안 희미 해지기를 원합니다. – user1911

답변

0

두 개의 이미지가 있지만 세 개의 변수가 있습니다. 이 기능을 실행할 때마다 언 프레스 이미지 + 프레스 된 이미지가 표시됩니다 (그리고 뷰 앞에 추가되기 때문에 나중에 뷰에 추가 된 이미지를 볼 수 있습니다).

0

프레스 된 이미지가 정상적으로 겹쳐서 표시 될 수 있습니까? 다음보십시오 :

[UIView animateWithDuration: 0.2 delay: 0.0 options: UIViewAnimationOptionAutoreverse animations:^{ 
    pressed.alpha = 1.0; 
    unPressed.alpha = 0.0; 
}completion:^(BOOL finished){ 
    pulsando.alpha = 0.0; 
    unPressed.alpha = 1.0; 
    pressed.alpha = 0.0; 
}]; 
1

우선 해제, 당신은 0.2으로 애니메이션 기간을 설정하면 실제로는 1 ~ 2 초 동안 표시하려는 경우 그래서 당신은 1.0 또는 2.0 시간을 늘릴 수 있습니다.

둘째,이 이미지가 서로 겹치고 있다고 가정합니다. 따라서 두 알파가 모두 1 일 때 이미지 중 하나만 표시됩니다. 애니메이션을 시작하기 전에 unPressed이 숨겨져 있는지 확인하십시오. 애니메이션을 끝낸 후에 pressed이 숨겨져 있는지 확인하십시오.

unPressed.alpha = 0; 

[UIView animateWithDuration: 2.0 delay: 0.0 options: UIViewAnimationOptionAutoreverse animations:^{ 
    pressed.alpha = 1.0; 
} completion:^(BOOL finished){ 
    pulsando.alpha = 0.0; 
    pressed.alpha = 0.0; 
    unPressed.alpha = 1.0; 
}]; 

(그리고 당신을 위해 한 번 더 질문 ... 당신은 당신이 1 ~ 2 초 동안 표시 할 이미지를 원했다. 당신은 이미지가 바로 표시 할? 아니면 당신이 페이드 싶지 않았나요? 그냥 더블 확인 그냥 원하는 경우를 표시하기 때문에 ..., 당신은 애니메이션 블록이 필요하지 않습니다)

편집 :. (이에 대한 수정에)

보인다 전혀 애니메이션 블록을 필요로하지 않는 것처럼 이미지를 2 초 동안 표시하려고하는 것입니다. 이 경우 버튼을 누르면 이미지가 표시되고 2 초 후에 이미지가 숨겨집니다. 예 :

- (IBAction)buttonSelected:(UIButton*)sender { 
    pressed.alpha = 1.0; 
    unPressed.alpha = 0.0; 
    [self performSelector:@selector(hidePressedImage) withObject:nil afterDelay:2.0]; 
} 

- (void)hidePressedImage { 
    pressed.alpha = 0.0; 
    unPressed.alpha = 1.0; 
} 
+0

내 문제는 UIImageView에 이미지를 정렬하는 것입니다. 클릭하면 눌린 이미지가 나타나지만 누르지 않으면 이미지가 나타납니다. 이미지가 나타나지 않습니다. – user1911

+0

그러나 압축되지 않은 이미지가 원래 나타 났습니까? –

+0

그렇다면 압축되지 않은 이미지가 원래 나타나면 UIImageView가 올바르게 지정되었으므로 완성한 이미지를 숨길 수 있습니다. 하지만 애니메이션이 끝나면 눌린 이미지가 그 이미지를 숨길 것입니다. –

관련 문제