Это функция, которая повторяется для каждой ячейки в TableView. Как вы можете видеть, что im передаёт массив изображений (называемых imageset) внутри объекта Product. productImages - это массив продукта. Внутри этого объекта мы имеем имя, цену и изображение.Изображения не загружены в UITableViewCell Swift
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("productCell", forIndexPath: indexPath) as! ProductHomeCell cell.productName.text = productImages[indexPath.row].name cell.productPrice.text = "\(productImages[indexPath.row].price)" //cell.PageImages contains Array of Images cell.pageImages = productImages[indexPath.row].imageSet return cell }
Теперь мы будем себе на заказ UITableViewCell, где будет загружена информация о продукте видели и показано. Обратите внимание, что Im использует ScrollView для прокрутки изображений (я взял код из вопроса в stackoverflow) PageImages - это переменная, которая должна иметь переданный образ.
var pageImages: [UIImage] = [] var pageViews: [UIImageView?] = [] var pageControl : UIPageControl = UIPageControl(frame: CGRectMake(60, 300, 195, 5)) override func awakeFromNib() { super.awakeFromNib() scrollView.delegate = self pageControl = UIPageControl(frame: CGRectMake(230, 14, 107, 37)) //PageImages should be loaded. let pageCount = pageImages.count self.pageControl.numberOfPages = pageCount configurePageControl() pageControl.enabled = false // 3 for _ in 0..<pageCount { pageViews.append(nil) } // 4 let pagesScrollViewSize = scrollView.frame.size scrollView.contentSize = CGSize(width: pagesScrollViewSize.width * CGFloat(pageImages.count), height: pagesScrollViewSize.height) loadVisiblePages() } func loadPage(page: Int) { if page < 0 || page >= pageImages.count { // If it's outside the range of what you have to display, then do nothing return } // 1 if let pageView = pageViews[page] { // Do nothing. The view is already loaded. } else { // 2 var frame = scrollView.bounds frame.origin.x = frame.size.width * CGFloat(page) frame.origin.y = 0.0 // 3 let newPageView = UIImageView(image: pageImages[page]) // let newPageView = UIImageView(image: imageC) newPageView.contentMode = .ScaleAspectFit newPageView.frame = frame scrollView.addSubview(newPageView) // 4 pageViews[page] = newPageView } } func loadVisiblePages() { // First, determine which page is currently visible let pageWidth = scrollView.frame.size.width let page = Int(floor((scrollView.contentOffset.x * 2.0 + pageWidth)/(pageWidth * 2.0))) // Work out which pages you want to load let firstPage = page - 1 let lastPage = page + 1 // Purge anything before the first page for var index = 0; index < firstPage; ++index { purgePage(index) } // Load pages in our range for index in firstPage...lastPage { loadPage(index) } // Purge anything after the last page for var index = lastPage+1; index < pageImages.count; ++index { purgePage(index) } } func scrollViewDidScroll(scrollView: UIScrollView) { // Load the pages that are now on screen loadVisiblePages() } func purgePage(page: Int) { if page < 0 || page >= pageImages.count{ // If it's outside the range of what you have to display, then do nothing return } // Remove a page from the scroll view and reset the container array if let pageView = pageViews[page] { pageView.removeFromSuperview() pageViews[page] = nil } } override func setSelected(selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) // Configure the view for the selected state } func configurePageControl() { self.pageControl.currentPage = 0 self.pageControl.tintColor = UIColor.blackColor() self.pageControl.pageIndicatorTintColor = UIColor.lightGrayColor() self.pageControl.currentPageIndicatorTintColor = UIColor.blackColor() self.addSubview(pageControl) } func scrollViewDidEndDecelerating(scrollView: UIScrollView) { let pageNumber = round(scrollView.contentOffset.x/scrollView.frame.size.width) pageControl.currentPage = Int(pageNumber) }
ПРОБЛЕМА - название и цена товара. Изображения не. Когда я отлаживаю это, похоже, что PageImages пуст, когда работает awakeFromNib(), но когда я отлаживаю метод cellForARowAtIndexPath, var PageImages загружается с помощью imageSet в этом indexPath.row. Благодаря
0
A
ответ
0
awakeFromNib
выполняется до того, как клетка возвращается dequeue...
Так пытается настроить свои страницы там не будет работать. Эти два подхода, которые я видел не должны либо иметь способ явно установить ячейку:
func setupCell(productName:String, productPrice:Double, images:[UIImage]) {
// Do most of what you have in awakeFromNib here
}
или сделать это в didSet для свойства:
var pageImages : [UIImage] = [] {
didSet {
// Set up your page controller here.
}
}
+0
Спасибо! Я пробовал с didSet и отлично работал – Diego
Смежные вопросы
- 1. Изображения не загружены
- 2. PNG изображения не загружены
- 3. Мои изображения не загружены
- 4. Изображения не загружены в HTML
- 5. Swift - UITableViewCell? не конвертируется в UITableViewCell
- 6. PHP - Не все изображения загружены
- 7. GridView Изображения не загружены правильно
- 8. FancyBox Изображения не правильно загружены
- 9. Проверьте, не загружены ли изображения
- 10. Изображения не загружены в WAPT Pro
- 11. Swift - когда данные фактически загружены в TableViewController
- 12. Все изображения загружены в jQuery?
- 13. Пользовательский UITableViewCell в swift
- 14. UITableView in Swift: ячейки вне экрана не загружены
- 15. Magento 1.7 - Prodcut Import - Изображения не загружены
- 16. jQuery: Проверьте, не загружены ли все изображения.
- 17. Изображения веб-частей SharePoint не загружены
- 18. Изображения не загружены из js-файла
- 19. файл изображения Django не получает загружены
- 20. Изображения не загружены на мой сайт HTML
- 21. Swift ScrollView В UITableViewCell не прокручивается
- 22. Swift UICollectionView в UITableViewCell не работает
- 23. UITableViewCell не показывает содержание в Swift
- 24. UIImagePickerController (didFinishPickingMediaWithInfo) НЕ вызывается в UITableViewCell Swift
- 25. UITableViewCell не остается выделенным в swift
- 26. Swift UITableViewCell IBOutlets не отображается в StoryBoard
- 27. Идентификация UIButton в UITableViewCell не работает - Swift
- 28. UIScrollView в UITableViewCell в Swift
- 29. UITableViewCell изображения не загружаются ios
- 30. Настройка изображений в UITableViewCell в Swift
Добро пожаловать на SO, No один будет проходить через весь этот код. Можете ли вы изменить свой код до соответствующих частей? – Mika