사용자 정의 UIViewController 하위 클래스를 UISmrollView, 포함하는 컨트롤을 포함하여 제어 할 :UIScrollView 홀수 동작 : 확대, 축소, 축소, 내용보기 해제
UIScrollView 내 이미지를 확대 할 수 및 주위에 팬 -하지만 그렇게 할 경우 뷰의 중심이 이미지의 중심이 아니며 완전히 축소하면 이미지가 중앙에서 벗어납니다. 그 시점에서 최소한의 줌 배율을 사용하고 있기 때문에 더 많은 것을 할 수 있습니다. 내 이미지를 다시 센터링하기 위해 팬을 움직일 수는 없습니다.
축소 할 때, UIScrollView는 contentSize의 영역을 경계 아래로 다시 배치하여 내용보기의 가장자리 (또는 내용보기의 크기 + contentInset)를 넘지 않도록합니다. 나는이 가정에서 틀린가?
그렇다면이 동작을 제공하려면 어떻게해야합니까?
여기 내 코드 :
- (void)viewDidLoad
{
[super viewDidLoad];
imageView.image = image;
[imageView sizeToFit];
float minimumScale = [imageScrollView frame].size.width/[imageView frame].size.width;
imageScrollView.contentSize = [imageView frame].size;
imageScrollView.maximumZoomScale = 2.0;
imageScrollView.minimumZoomScale = minimumScale;
imageScrollView.zoomScale = imageScrollView.minimumZoomScale;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return YES;
}
- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView
{
return imageView;
}
- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale
{
// nothing
}
편집 : 솔루션!
원하는 동작을 얻으려면 clipsToBounds = YES
을 UIScrollView에 설정해야합니다. UIScrollView가 아닌 UIView의 속성이기 때문에 처음에는 찾지 못했습니다.