gpt4 book ai didi

swift - 图像的 ScrollView 在自定义表格 View 单元格中不起作用

转载 作者:行者123 更新时间:2023-11-28 09:00:56 26 4
gpt4 key购买 nike

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

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

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

我最近尝试过的东西。

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

View Controller :

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 代码,但它仍然没有显示任何内容。我错过了什么?这真让我恼火。

最佳答案

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 - 图像的 ScrollView 在自定义表格 View 单元格中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32056884/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com