Tag: pinchzoom

如何使用jQuery Mobile添加捏/缩放行为?

我需要使用jQuery Mobile创build一个移动应用程序。 我不明白如何实现在应用程序中显示的图像捏缩放。

UIPinchGestureRecognizer分别在水平和垂直方向上缩放

当使用UIPinchGestureRecognizer时,在水平和垂直方向上检测/读取缩放比例的最佳方法是什么? 我看到这个post UIPinchGestureRecognizer在不同的x和y方向上缩放视图 但是我注意到这么一个看似常规的任务有很多来回走动,我不确定这是最好的答案。 如果完全不使用UIPinchGestureRecognizer来达到这个目的,那么检测两个不同方向的缩放比例的最好方法是什么?

将缩放缩放添加到UICollectionView

介绍 我将描述我想实现的效果,然后详细说明我目前正在如何实现这一点,以及它现在的行为有什么问题。 我还会提到另外一个我看过的方法,但根本无法工作。 最相关的代码是在问题的底部内联以便快速访问。 您可以下载源代码的压缩文件或将项目作为BitBucket上的Mercurial Repository进行获取。 该项目现在包含下面答案的修复。 如果您想要最初提供的破损版本,则会标记为“初始错误版本” 该项目是一个概念/秒杀的最低限度的certificate,以评估效果是否可行,所以它是相当轻和简单! 期望的效果 该应用程序将显示形成垂直表的大量离散信息行。 该表格将被用户垂直滚动。 这是UITableView标准行为,也可以使用UICollectionView 。 但是,应用程序还必须支持捏缩放。 当你在桌子上缩放变焦时, 所有的线条都应该挤压在一起。 当你拉伸, 所有的线应该分开。 在我的概念certificate中,单个细胞没有resize,只是将它们重新放置在一起或者进一步分开。 这是故意的:我不相信validation这个想法的可行性是至关重要的。 这里的屏幕截图显示了当前App如何缩小和放大: 目前的实施 我正在使用UICollectionView与自定义UICollectionViewLayout子类。 这个布局将UICollectionViewCells定位在屏幕中间的一个很好的正弦波。 每个UICollectionViewCell只是一个容器,用于存放indexPath行的UILabel 。 UICollectionViewLayout子类有一个参数来设置它描述给UICollectionView每个单元格之间的垂直间距,并且调整这个参数允许表格按需要垂直压扁或拉伸。 我的UICollectionViewController子类有一个UIPinchGestureRecognizer 。 当识别器检测到比例变化时, UICollectionView布局中的垂直单元格间距将UICollectionView更改。 没有进一步考虑,缩放将从内容的顶部发生,而不是在触摸手势的中心。 UICollectionView的contentOffset属性在调整期间进行调整以提供此function。 手势识别器还需要适应夹捏时发生的拖动。 这也是通过更改UICollectionView的contentOffset来处理的。 一些额外的代码允许在手指被添加到手势或从手势移除时触摸手势的中心点改变。 请注意,作为UIScrollView子类的UIPanGestureRecognizer具有自己的UIPanGestureRecognizer ,它与我添加的UIPanGestureRecognizer进行交互。 我不确定这是否导致问题。 我添加了代码来禁用UICollectionView的内置滚动在我的捏手势,但这似乎没有太大的区别。 我试图使用gestureRecognizer:shouldRequireFailureOfGestureRecognizer:使我的UIPinchGestureRecognizer失败的内置UIPanGestureRecognizer ,但这似乎停止了我的掐识别器工作。 我不知道这是我是愚蠢的,还是在iOS中的错误。 如前所述,目前的UICollectionViewCell没有resize。 他们只是重新定位。 这是故意的。 我认为这对于validation这个概念并不重要。 什么工作 工作位工作得很好。 您可以上下拖动表格。 在拖动过程中,您可以添加一个手指并开始捏合,然后释放一个手指并继续拖动,然后添加和捏合等。这一切都非常顺利。 在原始的iPhone 5上,它可以顺利地在屏幕上支持> 200视图的捏和平移。 […]

如何启用缩放UICollectionView

我很困惑。 我有一个UICollectionView 。 我有我自己的UICollectionViewLayout子类(喵,我没有使用Flow的东西)。 UICollectionView实例是UIScrollView的子类。 它增加了多个子视图。 但像正确缩放包含许多子视图的UIScrollView的问题似乎表明,可滚动视图应该只有一个子视图“滚动整个视图”。 对我来说似乎是一种不一致的婚姻。 我的意思是为什么苹果给我一个多重子视图的框架,然后把它们全部放在滚动视图中,这不应该工作正常? 所以我很好奇我应该如何使我的整个UICollectionView (它在UICollectionViewController子类)可缩放。 我是否需要实现各种委托方法和无效/操作布局对象,根据我在布局中保留的某些属性派生布局? 还是有其他一些机制? 另外,为什么不能只是操纵zoomScale属性,并为我自动做呢? 或者我在这里错过了一些微妙之处?

移动Safari中的错误是否有解决方法:捏放大导致随机滚动阻塞?

我有一个滚动div中的图像 : <div style=" width:600px;height:400px; overflow:scroll; position:relative; top:0;left:0; -webkit-overflow-scrolling: touch;"> <img src=image.jpg width=2000 height=2000> </div> 它可以像预期的那样在任何地方工作,除了在iOS (8.1.3)上,当我用手指放大时,DIV停止正确滚动 。 人们仍然可以滚动到某个特定的点,但除了几乎没有放大的时候,我不可能查看整个图像 。 我已经尝试了数百种固定,绝对和相对定位的组合,div和图像,还有overflow和fixed等各种组合 。它们都不起作用。 如果我删除“ -webkit-overflow-scrolling:touch ”,问题就会消失,但滚动失去动力,变得痛苦。 滚动行为似乎很随机。 有时你可以向上卷动,有时候不可以。 问题似乎来自视口滚动和图像滚动之间的冲突。 我在tech.ozake.com上发布了一个简单的例子。 当放大图像时,有没有办法使图像平滑滚动? [更新2017年5月23日]这可能会在下一个版本的Mobile Safari中得到修复: news.ycombinator.com 。

捏缩放在scrollView内的UIImageView的影响?

我正在使用故事板(iOS 6.0)为我的应用程序创build照片库查看器。 这是我的imageViewController在故事板中的设置: 我已经确保在imageView和scrollView上启用userInteraction和多个触摸。 我想要做的是,捏,我想放大到imageView(最大比例3),并能够平移。 这是我目前有,但是,即使捏手势检测到规模不会改变。 – (IBAction)imagePinched:(id)sender { if (pinchRecognizer.state == UIGestureRecognizerStateEnded || pinchRecognizer.state == UIGestureRecognizerStateChanged) { NSLog(@"gesture.scale = %f", pinchRecognizer.scale); CGFloat currentScale = self.fullScreenView.frame.size.width / self.fullScreenView.bounds.size.width; CGFloat newScale = currentScale * pinchRecognizer.scale; if (newScale < 1) { newScale = 1; } if (newScale > 3) { newScale = 3; } CGAffineTransform transform = […]