嗨我在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
答案 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。