ios - 如何在 UICollectionViewCell 中缩放 UIScrollView?

标签 ios objective-c uikit

我正在尝试在 UICollectionViewCell 中添加一个 UIScrollView。这个想法是,您可以使用捏合来缩放 UIScrollView(以及其中的图像),但 ScrollView 似乎无法处理任何手势。我猜他们被 UICollectionView 捕获了。

我已将 UIScrollView 的委托(delegate)设置为 UICollectionViewCell,但没有调用任何委托(delegate)方法。

编辑: 我已经用代码制作了一个 github 存储库(尽可能简化)。虽然只有几行代码,但我看不出我做错了什么。

EDIT2:找到答案后,我将修复程序添加到上述 repo 中,希望其他人也觉得它有帮助:)

https://github.com/krummler/gallery-pinchzoom-example

最佳答案

我刚刚在 iOS 9.3+ 上为 SWIFT 3 做了一个实现,我所做的就是:

<强>1。将 ImageView 放在 ScrollView 中

storyboard example

<强>2。将 ScrollView 委托(delegate)连接到 Collection View 单元类

<强>3。在 collectionview 子类上实现下面的代码

class FullScreenImageTextDetailCollectionViewCell: UICollectionViewCell, UIScrollViewDelegate {

     @IBOutlet var scrollview: UIScrollView!
     @IBOutlet weak var backgroundImageView: UIImageView!

     override func awakeFromNib() {
         self.scrollview.minimumZoomScale = 0.5
         self.scrollview.maximumZoomScale = 3.5
         self.scrollview.delegate = self
     }

     func viewForZooming(in scrollView: UIScrollView) -> UIView? {
         return self.backgroundImageView
     }
}

不需要在父 collectionview Controller 上添加或删除手势识别器,工作起来非常棒!

感谢前面的示例实现了这一点!

关于ios - 如何在 UICollectionViewCell 中缩放 UIScrollView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16960556/

相关文章:

objective-c - 一次停止所有声音?

iphone - 如何在全屏 OpenGL ES 应用程序上显示 iPhone/iPad 键盘

IOS预期表达式错误

ios - 关于修改 NSMutableArray 的内容

ios - dispatch_get_global_queue 和 dispatch_queue_create 有什么区别?

objective-c - 如何禁用 NSStatusItem 的高亮模式

ios - 在 Swift UIscrollview 中设置 View Controller 的形状

ios - 返回静态变量时的线程安全

iOS/C : Convert "integer" into four character string

iOS 模拟器 (iPhone6) viewControllers 不匹配 storyBoard Controller