我有一个图像作为背景,我想让这个图像的某些部分可以通过放大和缩小来点击,有没有办法做那样的事情?
答案 0 :(得分:0)
不要为手势识别器创建新视图。识别器实现了locationInView:方法。为包含敏感区域的视图设置它。在handleGesture上,按照以下方式对您关注的区域进行测试:
0)在包含您关注的区域的视图上执行所有操作。不要仅为手势识别器添加特殊视图。
1)设置mySensitiveRect
@property (assign, nonatomic) CGRect mySensitiveRect;
@synthesize mySensitiveRect=_mySensitiveRect;
self.mySensitiveRect = CGRectMake(0.0, 240.0, 320.0, 240.0);
2)创建你的gestureRecognizer:
gr = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handleGesture :)]; [self.view addGestureRecognizer:gr]; //如果不使用ARC,你应该[gr release]; // mySensitiveRect coords位于self.view
的坐标系中- (void)handleGesture:(UIGestureRecognizer *)gestureRecognizer {
CGPoint p = [gestureRecognizer locationInView:self.view];
if (CGRectContainsPoint(mySensitiveRect, p)) {
//Add your zooming code here
} else {
NSLog(@"got a tap, but not where i need it");
}
}}
敏感的rect应该在myView的坐标系中初始化,该坐标系与你附加识别器的视图相同。
答案 1 :(得分:0)
Apple有一个名为PhotoScroller的演示应用程序,它实现了一组可缩放的,可滚动的图像(在页面视图控制器中,但你不需要它。)这将是你需要的一个很好的起点。
他们的示例应用程序曾经构建到Xcode文档中。从Xcode 6开始,我还没有在文档中看到它们的链接。
下载PhotoScroller