在 CollectionViewCell 内的 ScrollView 内缩放 UIImage [重复]
Posted
技术标签:
【中文标题】在 CollectionViewCell 内的 ScrollView 内缩放 UIImage [重复]【英文标题】:Zoomed UIImage inside ScrollView inside CollectionViewCell [duplicate] 【发布时间】:2016-02-21 14:23:50 【问题描述】:我的目标是创建类似 Apple Photos 应用程序的应用程序 - 显示照片、允许缩放、水平滚动等...
我目前被困在允许在collectionViewCell
中放大照片。
我做了什么:我有collectionView
和scrollView
里面collectionViewCell
。这就是我在CollectionViewController
中在cellForItemAtIndexPath
中创建UIImageView
的方式:
let imageView: UIImageView!
let someImage = UIImage(named: "someImage")
imageView = UIImageView(image: someImage)
imageView.frame = CGRect(origin: CGPointMake(0.0, 0.0), size:someImage.size)
cell.scrollView.addSubview(imageView)
cell.scrollView.contentSize = someImage.size
let scrollViewFrame = cell.scrollView.frame
let scaleWidth = scrollViewFrame.size.width / cell.scrollView.contentSize.width
let scaleHeight = scrollViewFrame.size.height / cell.scrollView.contentSize.height
let minScale = min(scaleWidth, scaleHeight);
cell.scrollView.minimumZoomScale = minScale;
cell.scrollView.maximumZoomScale = 1.0
cell.scrollView.zoomScale = minScale;
centerScrollViewContents(cell.scrollView, imageView: imageView)
(我在Ray Wenderlich找到了这段代码)
接下来我需要添加此代码,以便缩放正常工作:
func viewForZoomingInScrollView(scrollView: UIScrollView!) -> UIView!
return imageView
func scrollViewDidZoom(scrollView: UIScrollView!)
let boundsSize = scrollView.bounds.size
var contentsFrame = imageView.frame
if contentsFrame.size.width < boundsSize.width
contentsFrame.origin.x = (boundsSize.width - contentsFrame.size.width) / 2.0
else
contentsFrame.origin.x = 0.0
if contentsFrame.size.height < boundsSize.height
contentsFrame.origin.y = (boundsSize.height - contentsFrame.size.height) / 2.0
else
contentsFrame.origin.y = 0.0
imageView.frame = contentsFrame
问题是,我的IBAOutlet
for scrollView
在CollectionViewCell
内部,而不是CollectionViewController
,所以这两个函数必须从CollectionViewCell
调用,但我不知道如何访问@987654336 @ 代表viewForZoomingInScrollView
。也许我的整个方法都是错误的?
【问题讨论】:
【参考方案1】:使用 xib 创建 UICollectionViewCell 子类
Subclassing UICollectionViewCell and initialising from xib
或者没有xib
http://randexdev.com/2014/08/uicollectionviewcell/
然后将 scrollView 的 delegate 设置为 collectionViewCell 子类
将 UIScrollViewDelegate 代码添加到单元格
您可以从单元格属性访问 imageView
【讨论】:
以上是关于在 CollectionViewCell 内的 ScrollView 内缩放 UIImage [重复]的主要内容,如果未能解决你的问题,请参考以下文章
如何为 collectionviewcell 内的进度条创建 IBOutlet?
约束 UIView 内的标签,该标签位于可扩展 collectionViewCell 内
按下 CollectionViewCell 内的按钮后如何呈现 ViewController
uiCollectionViewCell 内的 Uitableview