在自定义表格视图单元格内无法工作的图像的滚动视图

时间:2015-08-17 18:04:15

标签: swift uitableview uiscrollview

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

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

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

我试过最新的事情。

在我从桌面尝试的5张图片后,我想要使用一组UIImages,它将从我的ViewController传递。

的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 个答案:

答案 0 :(得分:0)

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方法。