0

사용자가 손가락으로 사진을 패닝하고 속도가 느린 사진 앱의 동작을 모방하려고합니다. 내가 들어 가지 않는 이유 때문에 확대/축소 UIImageView과 함께 UIScrollView을 사용할 수없고 에 UIPanGestureRecognizer을 구현해야합니다. Apple은이를 수행하는 방법에 대한 샘플을 가지고 있습니까? 아니면 그 행동을 모방하는 방법을 아는 사람이 있습니까? 이것에 대한 모든 WWDC 비디오? (찾을 수 없습니다).모방 팬 동작 (속도) 사진 앱

답변

2

UIPinchGestureRecognizer을 구현하고 선택기로 다음 함수를 연결하십시오.

-(void)scale:(id)sender { 
    if([(UIPinchGestureRecognizer*)sender state] == UIGestureRecognizerStateEnded) { 
    lastScale = 1.0; 
    CGSize zoomViewSize = CGSizeApplyAffineTransform(imgScrollView.frame.size, [(UIPinchGestureRecognizer *)sender view].transform); 
    CGPoint centerPoint = CGPointApplyAffineTransform(imgScrollView.frame.origin, [(UIPinchGestureRecognizer *)sender view].transform); 

    CGRect r = imgScrollView.bounds; 
    CGSize scrollViewSize = imgScrollView.frame.size; 
    imgScrollView.contentSize = zoomViewSize; 
    imgScrollView.contentOffset = centerPoint; 
    } 

    CGFloat currentScale = [[[(UIPinchGestureRecognizer*)sender view].layer valueForKeyPath:@"transform.scale"] floatValue]; 

    CGFloat scale = 1.0 - (lastScale - [(UIPinchGestureRecognizer*)sender scale]); 
    scale = MIN(scale, imgScrollView.maximumZoomScale/currentScale); 
    scale = MAX(scale, imgScrollView.minimumZoomScale/currentScale); 
    CGAffineTransform currentTransform = [(UIPinchGestureRecognizer*)sender view].transform; 
    CGAffineTransform newTransform = CGAffineTransformScale(currentTransform, scale, scale); 
    [[(UIPinchGestureRecognizer*)sender view] setTransform:newTransform]; 
    lastScale = [(UIPinchGestureRecognizer*)sender scale];  
} 
+0

감사합니다. 스케일링을위한 것입니다. 우연히 패닝을 위해 그것을하는 방법을 알고 있습니까? –

3

당신은 내가 KTPhotoBrowser 데모 좀보고 당신을 제안하는 것보다 기타 제 3 자 준비했다 제어를 통합 할 수 열려있는 경우.

굉장합니다. 모든 것은 프로그램 방식으로 이루어 지지만 요구 사항에 따라 변경할 수 있습니다.