swift - Swift - 在图像而不是视图上使用手势识别器
问题描述
我有一个包含单个图像的 UIImageView。在情节提要中,我在图像视图上放置了一个平移手势识别器。它有效,但是,我只能重新定位整个 UIImageView 而不仅仅是图像。在下面的示例中,我希望红框始终保持不变。我只想重新定位底层图像。
我的捏手势识别器的代码显然正在转换问题所在的 imageView。但我没有看到将手势识别器附加到图像本身的方法。或者,如果这甚至是我应该尝试做的......
@IBAction func scaleImage(_ sender: UIPinchGestureRecognizer) {
imageView.transform = CGAffineTransform(scaleX: sender.scale, y: sender.scale)
}
解决方案
当你说
重新定位整个 UIImageView 而不仅仅是图像
听起来您认为里面有一些图像的视图容器UIImageView
。
但事实并非如此。UIImageView
已经是你能拿到的最低级别了。下面有一个layer
,但它与视图绑定。
当您更改UIImageView
此变换会影响手势计算时,这就是您出现问题的原因。
我建议您为此容器视图包装UIImageView
并添加手势识别器。UIView
同样根据您的需要,最简单的解决方案可能是将图像放在 a 中UIScrollView
并启用缩放,这将允许用户缩放和滚动图像。
推荐阅读
- javascript - Bootstrap Validator - RegExp weird behavior
- java - What is the best practise in spring rest for coding Id based and name based API
- c++ - How to check whether rectangle is golden rectangle using Fibonacci and recursion function?
- java - Android libgdx: NullPointerException on SQLiteOpenHelper database
- mysql - 如果 MySQL 存储过程中的条件未正确评估
- excel - Waterfalls in Excel
- java - Map.computeIfPresent() 在 Java 中初始化一个 List
- xml - XSLT - XML 转换
- c# - C#6 中的长字符串插值行不支持 Tab、CR 和 LF
- android - Add number of logins by user on firebase