图像的滚动视图在自定义表格视图单元格中不起作用

Posted

技术标签:

【中文标题】图像的滚动视图在自定义表格视图单元格中不起作用【英文标题】:Scrollview of images not working inside custom table view cell 【发布时间】:2015-08-17 18:04:14 【问题描述】:

我有 2 个图像(截至目前)从 Parse 下载到它们对应的 cellForRowAtIndexPath。我正在尝试将这些图像放在 UIScrollView 中。

测试图像是否存在: 图像正在正确下载,因为我设置了 2 个 UIImageViews 并且来自 Parse 的两个图像都在整个 indexPaths 中正确显示

测试滚动视图: 然后我也从我的桌面创建了一组预加载的图像(5 个图像),并将它们放在 tableViewCell 中的一个数组中。它们在我的 indexPaths 中正确显示,我可以滚动浏览我的 5 张图片。

我最近尝试的。

在我从桌面尝试了 5 张图像之后,我想只使用一组 UIImages,这些 UIImages 将从我的 ViewController 传递。

视图控制器:

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
//...previous code
resultsHasImageOneFile[indexPath.row].getDataInBackgroundWithBlock
(ImageOneData: NSData?, error: NSError?) -> Void in

    if error == nil 

        myImages.append(UIImage(data: ImageOneData!)) //adds to array in cell
    
 

resultsImageTwoFile[indexPath.row].getDataInBackgroundWithBlock     (ImageTwoData: NSData?, error: NSError?) -> Void in

    if error == nil 

    myImages.append(UIImage(data: ImageTwoData!)) //adds to array in cell

    
//...additional code: including returning cell

自定义 TableViewCell: 我计划添加最多 5 张可以从 Parse 中检索到的图像,这就是我这样做的原因 for-in 循环。

@IBOutlet var imageScrollView: UIScrollView!

var imageWidth: CGFloat = 310
var imageHeight: CGFloat = 400
var yPosition: CGFloat = 0
var xPosition: CGFloat = 0
var scrollViewContentSize: CGFloat = 0

var myImages: [UIImage?] = [] //will hold 2 images per row

override func awakeFromNib() 
    super.awakeFromNib()

    let theWidth = UIScreen.mainScreen().bounds.width
    //create add UIImageView to scrollView
    for var index = 0; index < myImages.count; index++ 

        var myImage: UIImage = myImages[index]!

        var myImageView: UIImageView = UIImageView()
        myImageView.image = myImage

        myImageView.frame.size.width = imageWidth
        myImageView.frame.size.height = imageHeight
        myImageView.frame.origin.x = xPosition
        myImageView.frame.origin.y = 0

        imageScrollView.addSubview(myImageView)

        xPosition += imageWidth
        scrollViewContentSize += imageWidth //imageHeight

        imageScrollView.contentSize = CGSize(width: scrollViewContentSize, height: imageHeight)

    

我已经打印出数组的计数,它说它是空的...

我也尝试了 ViewController 中的 scrollView 代码,但它仍然没有显示任何内容。我错过了什么?这真的很烦我。

【问题讨论】:

【参考方案1】:
override func awakeFromNib() 
    super.awakeFromNib()

    let theWidth = UIScreen.mainScreen().bounds.width
    //create add UIImageView to scrollView
if(index>0)

    for var index = 0; index < myImages.count; index++ 

        var myImage: UIImage = myImages[index]!

        var myImageView: UIImageView = UIImageView()
        myImageView.image = myImage

        myImageView.frame.size.width = imageWidth
        myImageView.frame.size.height = imageHeight
        myImageView.frame.origin.x = xPosition
        myImageView.frame.origin.y = 0

        imageScrollView.addSubview(myImageView)

        xPosition += imageWidth
        scrollViewContentSize += imageWidth //imageHeight

        imageScrollView.contentSize = CGSize(width: scrollViewContentSize, height: imageHeight)


条件

只需检查索引是否为空的条件,因为如果您从服务器端获取图像,则需要时间。

否则在获取图片详情后调用scrollview方法。

【讨论】:

以上是关于图像的滚动视图在自定义表格视图单元格中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

为啥两个表格视图单元格中的两个集合视图在 Swift 4 中不起作用?

如何停止在自定义表格视图单元格中交换数据?

无法在自定义表格视图单元格中使 ImageView 成为一个圆圈

在自定义表格单元中更改图像视图

回调闭包函数在单元格中不起作用

以swift语言在自定义表格视图单元格中更新进度视图下载