gpt4 book ai didi

ios - UITableViewCell ScrollView

转载 作者:行者123 更新时间:2023-11-28 06:42:27 24 4
gpt4 key购买 nike

我有一个带有 ScrollView 的表格 View 单元格,用于滚动浏览图像。我遇到了几个问题。

当显示表格 View 时,带有 ScrollView 和图像的单元格显示为第一张图像和第二张图像的一部分,分页不起作用,它允许您向任何方向滚动。

enter image description here

一旦我滚动到这个单元格然后再滚动回到它,它就会正确显示并且分页工作正常。

enter image description here

在 cellForRowAtIndexPath() 中

if indexPath.section == 0 {
let imageCell = tableView.dequeueReusableCellWithIdentifier("imageCell", forIndexPath: indexPath) as! ImageCell

imageCell.selectionStyle = .None

if imageFiles.count > 0 {

if imageFiles.count == 1 {
imageCell.pageControl.hidden = true
}

imageCell.pageControl.numberOfPages = imageFiles.count
imageCell.pageControl.currentPage = 0

var index = 0
for photo in imageFiles {
var frame = CGRect()
frame.origin.x = (imageCell.imageScrollView.frame.size.width * CGFloat(index))
frame.origin.y = 0
frame.size = CGSizeMake(imageCell.imageScrollView.frame.size.width, imageCell.imageScrollView.frame.size.height)

let imageView = UIImageView(frame: frame)
imageView.image = photo

imageCell.imageScrollView.addSubview(imageView)
imageCell.imageScrollView.contentSize = CGSizeMake(imageCell.imageScrollView.frame.size.width * CGFloat(imageFiles.count), imageCell.imageScrollView.frame.size.height)

index += 1
}

} else {
imageCell.pageControl.hidden = true
let imageView = UIImageView(frame: imageCell.imageScrollView.frame)
imageView.image = UIImage(named: "placeholder")
imageCell.imageScrollView.addSubview(imageView)
}

我的自定义单元格:

import UIKit

class ImageCell: UITableViewCell, UIScrollViewDelegate {
@IBOutlet weak var pageControl: UIPageControl!
@IBOutlet weak var imageScrollView: UIScrollView!

override func awakeFromNib() {
super.awakeFromNib()
// Initialization code
}

override func setSelected(selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)

// Configure the view for the selected state
}

func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
let pageWidth = scrollView.frame.size.width

pageControl.currentPage = Int(scrollView.contentOffset.x / pageWidth)
}
}

最佳答案

我使用的是 SDWebImageDownloader。 viewDidLoad() 下载图像以在 ScrollView 中使用,但我没有重新加载表格 View 数据。一旦我添加了它,它就完美地工作了。

func downloadImages() {
let downloader = SDWebImageDownloader.sharedDownloader()

for imageURL in images {
let url = NSURL(string: imageURL)
downloader.downloadImageWithURL(url, options: SDWebImageDownloaderOptions.UseNSURLCache, progress: nil,
completed: { (image, data, error, bool) -> Void in
self.imageFiles.append(image)
dispatch_async(dispatch_get_main_queue(), {
self.tableView.reloadData()
})
})
}
}

关于ios - UITableViewCell ScrollView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37576754/

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