- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在我的 iOS 应用程序中缩放四边形。它需要缩放的不是基于四边形的中心,而是基于捏合的质心。
我能够正确地做到这一点 - 但仅限于第一个捏合手势。在随后的捏合手势中,它可以工作,但它会有点漂移并且看起来不太准确。我不知道该怎么做。
有一些关于这个的问题,我已经经历了大部分,如果不是全部的话。他们都没有准确地解决我的问题。
另请注意,我正在缩放和平移四边形(呈现为 GLKView),而不是 View 本身。我见过的大多数解决方案都是直接转换 View 。
这是捏合手势和处理的代码:
首先在 viewDidLoad 中:
UIPinchGestureRecognizer *pinchRecognizer = [[UIPinchGestureRecognizer alloc]
initWithTarget:self action:@selector(respondToPinchGesture:)];
pinchRecognizer.cancelsTouchesInView = YES;
pinchRecognizer.delaysTouchesEnded = NO;
[glView addGestureRecognizer:pinchRecognizer];
- (IBAction)respondToPinchGesture:(UIPinchGestureRecognizer *)recognizer{
if (recognizer.state == UIGestureRecognizerStateEnded || [recognizer numberOfTouches] < 2) return;
if (recognizer.state == UIGestureRecognizerStateBegan) {
point = [recognizer locationInView:glView];
point.x *= glView.contentScaleFactor;
point.y *= glView.contentScaleFactor;
point.y = height - point.y;
anchor = GLKVector3Make(point.x, point.y, 0);
lastScale = 1.0;
}
if (fabs(recognizer.scale - lastScale) > 0.01){
GLfloat scale = 1.0 - (lastScale - recognizer.scale);
lastScale = recognizer.scale;
new_anchor_point = anchor;
new_anchor_point = GLKVector3MultiplyScalar(new_anchor_point, scale);
GLKVector3 translate = GLKVector3Subtract(anchor, new_anchor_point);
path.transform = GLKMatrix4TranslateWithVector3(path.transform, translate);
path.transform = GLKMatrix4Scale(path.transform, scale, scale, 0);
cumulative_translate = GLKVector3Add(cumulative_translate, translate);
}
}
最佳答案
你必须
关于ios - 如何准确放大捏合手势的特定点(多次捏合)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23401360/
我试图弄清楚为什么我的缩放在我的 OpenGL 相机上表现得很奇怪。它的目的是放大和缩小,但它的缩放非常随机。 这是我的代码: - (void)pinchDetected:(UIPinchGestur
我有一个带有 pdf 文件的 UIWebView。效果很好。但是我怎样才能启用pdf文件的缩放呢? 最佳答案 确保选中“缩放页面以适合” 关于pdf - 在 UIWebView 上启用缩放/捏合,我们
我使用 Ionic4 和 Angular8。 我想在智能手机上捏合/捏合屏幕。 我试过的以下说明已添加到 index.html。 但事与愿违,在真机上并没有运行。 我也试过了。 以下已添加到 . s
我有一个使用 canvas.drawLine 方法绘制图形的 onDraw 开发的运行图形库。在 onTouch 中,我实现了滚动功能。 现在我的客户想要缩放/捏合。是否可以在不重新绘制这些操作的情况
我被 UIScrollView 的问题困住了 我想在用户点击特定点时缩放 ScrollView ,并防止用户使用捏缩放手势放大/缩小,我该怎么做? [imgScroll setDelegate:sel
我的 map View 有一个 OnZoomListener,只要缩放比例发生变化,它就会被调用。这适用于底部的加号或减号按钮用于更改缩放比例的任何时候。但是,如果用户使用双指缩放来放大或缩小,则永远
我有一个 UITextView,可以在 UIImageView 中使用手势缩放、旋转和调整大小。当我缩放或调整它的大小然后输入一些文本时,文本容器会改变大小并且文本被截断。我尝试更改文本的大小以调整其
在 iPhone 上我只是这样做(而且它完美地工作): view.transform = CGAffineTransformRotate(transform, [(UIRotationGestureR
我已经从资源包中的 UIWebView 中加载了一个 PDF 文件。 现在,我无法缩放/收缩 PDF 文件。 我找到了以下 2 个相关链接,但没有一个答案被标记为正确 - How to zoom we
我正在做一个图像处理项目,我需要通过平移来拖动图像,通过旋转来旋转图像,通过捏合手势使图像变小和变大,最后通过双击禁用所有手势。如何实现这一目标,因为我对 Android 开发还很陌生。 提前致谢 最
我正在尝试将具有特定位置的 div(“childItem”)覆盖在具有背景图像的较大 div(“parentContainer”)之上。然后我使用 iscroll 允许在父 div 上捏合/缩放。这行
在 android 平板电脑上用谷歌浏览器打开的 html 页面上,我需要捕捉该用户已经做了一些放大(捏合)并在几秒钟后将其重置为默认值。 (缩小到默认屏幕大小。但我不想完全阻止缩放,我想允许它,但一
下面通过图文并茂的方式给大家分享下IOS手势操作(拖动、捏合、旋转、点按、长按、轻扫、自定义)的相关内容。 1、UIGestureRecognizer 介绍 手势识别在 iOS 中非常重要,他极大
谁能指导如何在 Angular 2 RC2 中使用移动手势。 可能是这样的: 从API可以看出 HAMMER_GESTURE_CONFIG HammerGestureConfig 下 @angula
不久前我在一家帆船公司制作了一个 WordPress 网站,xssailing.com并且当前将视口(viewport)设置为: 该站点在计算机上运行良好,我可以在 iPhone/iPad 上进行缩
ios 七种手势操作 今天为大家介绍一下ios 的七种手势,手势在开发中经常用到,所以就简单 通俗易懂的说下, 话不多说,直接看代码: 1、uigesturerecognizer 介绍 手势识
目前我正在尝试创建某种图像查看器,您可以在其中单击图像,然后以全尺寸显示该图像。现在我想给它添加手势来缩放。我想了解并查看如何添加捏合手势来放大和缩小,以便能够在图像周围平移并使用双击手势快速放大。我
我正在尝试使 ImageView 像 Instagram 故事帖 subview 一样工作。我在 UIImageView 上添加了 UIPinchGestureRecognizer、UIPanGest
我是一名优秀的程序员,十分优秀!