图像的滚动视图在自定义表格视图单元格中不起作用
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 中不起作用?