正确缩放包含许多子视图的 UIScrollView

Properly zooming a UIScrollView that contains many subviews(正确缩放包含许多子视图的 UIScrollView)

本文介绍了正确缩放包含许多子视图的 UIScrollView的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我创建了一个可缩放的 UIScrollView 并向其中添加了 100 个子视图(平铺).视图左右滚动完美.但是,我想允许缩放.

I created a zoomable UIScrollView and added 100 subviews to it (tiled). The view scrolls perfectly left and right. However, I'd like to allow zooming.

为此,我读到我的代表需要实现:

To do so I read that my delegate needs to implement:

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView {
    return ???;
}

我见过只有一个子视图可以缩放的例子,所以他们在那个方法中返回那个子视图.然而,就我而言,我还有很多.进行缩放的正确方法是什么?

I have seen examples that have only one subview to zoom, so they return that subview in that method. In my case, however, I have a lot more. What is the proper way to do the zooming?

我尝试创建另一个 UIView 并向其中添加 100 个子视图.然后在上面的方法中返回一个视图,但我不起作用(它会缩放,但一旦停止,它就不再是交互式的了).

I tried creating another UIView and adding the 100 subviews to that one. And then return that one view on the method above, but I doesn't work (it zooms but once it stops, it's not interactive any more).

推荐答案

没错,

这也是 Apple 在 滚动查看编程指南:

This is what Apple also is mentioning in the Scroll View Programming Guide:

只需创建一个视图,将所有子视图添加到此视图,并将新创建的视图作为单个子视图添加到滚动视图...

Just create a view, add all subviews to this view and add the newly created view as a single subview to the scrollview...

然后在 viewForZoomingInScrollView 委托方法中返回 Index 0 处的对象:

Then in the viewForZoomingInScrollView delegate method return the object at Index 0:

- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView 
{
    return [self.scrollView.subviews objectAtIndex:0];
}

这篇关于正确缩放包含许多子视图的 UIScrollView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:正确缩放包含许多子视图的 UIScrollView

基础教程推荐