2014-09-28 3 views
-1

UIView가 있으며 맨 위에는 UIImageView가 아래쪽 UICollectionView에 있습니다. 요점은, 사용자가 손가락을 위로 스 와이프하면 UIImageView 프레임이 부드럽게 밖으로 나가야하고 (사라짐) 사용자가 아래로 스 와이프하면 움직이는 애니메이션과 함께 다시 나타나야한다는 것입니다.UIImageView 프레임을 프로그래밍 방식으로 이동

실제로 이미지가 UIImageView에 설정 될 때까지 작동했습니다. 오래된 코드 (아래에 제시) 그냥 잘 작동 않았다 : 다음

-(void)handleSwipeDown:(UISwipeGestureRecognizer *)recognizer { 

    NSLog(@"Swipe received."); 
    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:0.5]; 

    self.myCollectionView.frame = CGRectMake(0, 152, 320, 480); 
    [UIView commitAnimations]; 
} 

를 실행 한 다음, 정지 작업 위

UIImage *firstImage = [UIImage imageNamed:@"ipd1.jpg"]; 
    self.imageSlideshow.image = firstImage; 

코드 :

-(void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer { 

    NSLog(@"Swipe received."); 
    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:0.5]; 

    self.myCollectionView.frame=CGRectMake(0, 0, 320, 480); 

    [UIView commitAnimations]; 
} 

내가 이미지를 설정 한 후. UIImage 프레임은 같은 위치에 있습니다. 어떻게 움직일 수 있습니까? 조언을 주시면 감사하겠습니다.

답변

2

beginAnimations:context:commitAnimations 블록 사용을 중지해야합니다. Apple 설명서에서 :

이 방법의 사용은 iOS 4.0 이상에서는 권장하지 않습니다. 대신 블록 기반 애니메이션 방법을 사용하여 애니메이션을 지정해야합니다.

사용이 대신 :

[UIView animateWithDuration:0.5 animations:^{ 
    self.myCollectionView.frame = CGRectMake(0, 152, 320, 480); 
}]; 

그냥 위의와 전체 swipeDown 방법을 대체합니다.

+0

감사합니다.하지만 아직 작동하지 않는 이미지가 있습니다. –

+0

코드 예제에서 myCollectionView의 프레임을 움직이고 있지만 imageSlideshow도 이동해야한다고 가정합니다. – believesInSanta

+0

글쎄, 사실 내 코드 imageView에서 볼 수 있지만 얼굴에, 그것은 변경되지 않습니다. 나는 콜렉션의 나머지 부분을 "당겨"봅니다 (화면 아래에 있기 때문에 보이지 않았습니다). –

관련 문제