简单放大UIView内部的UIScrollView

时间:2013-08-05 04:18:29

标签: ios objective-c uiview uiscrollview

嗨我在UIView里面有一个UIScrollView。我曾尝试使用我在网上找到的代码片段,但他们根本不会改变任何东西。它们主要用于在UIView中完成的图像或自定义视图,而在我的情况下,我有一组以编程方式创建的UILabel。我也试图改变边界值,它根本不做任何事情。这基本上就是我在viewDidAppear中确定它的大小:

[scrollView setContentSize:CGSizeMake([screenView getWidth], [screenView getHeight])];


scrollView.showsHorizontalScrollIndicator = true;
scrollView.showsVerticalScrollIndicator = true;

screenView是一个UIView变量。

这是我使用的设置(也在viewDidAppear中):

doubleTapRecogniser = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(doubleTapResponse:)];
    [doubleTapRecogniser addTarget:self action:@selector(doubleTapResponse:)];


    doubleTapRecogniser.delegate = self;

    doubleTapRecogniser.numberOfTapsRequired = 2;

    [self.scrollView addGestureRecognizer:doubleTapRecogniser];

这就是我实现双击方法的方法:

- (void) doubleTapResponse:(UITapGestureRecognizer *)recogniser
{

    CGFloat newZoomScale = self.scrollView.zoomScale / 1.5f;
    newZoomScale = MAX(newZoomScale, self.scrollView.minimumZoomScale);
    [self.scrollView setZoomScale:newZoomScale animated:YES];
}

当我在doubleTapResponse中使用NSLog消息时,我可以从我的控制台获得响应。但它没有做任何事情。可能是什么问题?我正在使用iOS6.1

2 个答案:

答案 0 :(得分:0)

[doubleTapRecogniser addTarget:scrollView action:@selector(doubleTapResponse:)];

应该是

[doubleTapRecogniser addTarget:self action:@selector(doubleTapResponse:)];

因为scrollview不知道doubleTapResponse是什么方法。 目前它正在抛出一个异常,因为它试图用你的doubleTapResponse方法调用UISCrollView的目标,你必须添加self的目标,并自己实现这个方法。在这里,我推测缩放的逻辑。

您还必须在viewcontroller(或您正在使用的类)中定义:doubleTapResponse

有关详情,请参阅此处: Ray Wenderlich guide

要缩放,请查看以下文章:QUESTION

答案 1 :(得分:0)

错误清楚地表明运行时在您正在使用的scrollview类中搜索名为doubleTapResponse的方法。即使将目标更改为self也不起作用,它的方法定义必须更改scrollview或viewcontroller。