這是在TableView中爲每個Cell重複的函數。正如你所看到的,我在一個名爲Product的對象中傳入了一系列圖像(稱爲imageset)。 productImages是一個Product數組。在這個對象裏面我們有Name,Price和imageSet。未載入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在哪裏見過該產品的信息將被加載和顯示。注意:使用ScrollView滾動圖片(我從stackoverflow中的問題中提取代碼) PageImages是應該傳遞imageSet的變量。
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) }
問題 - 產品名稱和價格完美的負荷。圖像不。當我調試它時看起來像是在awakeFromNib()正在運行時,PageImages是空的,但是當我在cellForARowAtIndexPath方法中調試時,var PageImages在該indexPath.row處加載了imageSet。 感謝
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. UITableViewCell圖像未加載
- 2. UITableViewCell加載圖像
- 3. 在UITableViewCell中選擇圖像(Swift 3 xcode)
- 4. 如何將圖像從解析到UIImage加載到UITableViewCell Swift中
- 5. UITableViewCell圖像未更新
- 6. UITableViewCell圖像不加載ios
- 7. Swift 3 UITableViewCell Alamofire圖像更新
- 8. 未在UItableViewCell中設置圖像:
- 9. 在UITableViewCell中加載圖像問題
- 10. TTStyledTextLabel在UITableViewCell中加載Web圖像
- 11. SWIFT - 重新加載UITableViewCell
- 12. 導入圖像(SWIFT)
- 13. 異步圖像加載到UITableViewCell後滾動異常圖像時,Swift圖像更改爲錯誤圖像
- 14. Swift捕獲UITableViewCell中的輸入值
- 15. 異步加載圖像裏面的uitableviewcell
- 16. UITableViewCell的異步圖像加載佈局
- 17. Swift - Pod圖像未加載(未找到,返回零)
- 18. 把Tableview放入UITableViewCell Swift
- 19. 從swift中在uiscrollview中加載圖像
- 20. 在web視圖中未加載swift iframe
- 21. Swift中的UITableViewCell中的UIScrollView
- 22. ImageView中未加載圖像
- 23. 加載tableview裏面的uitableviewcell swift
- 24. 圖像載入未正確執行?
- 25. 未在30秒內載入圖像[Galleria]
- 26. 如何從iPhone中的UITableviewCell中加載NSMutableArray中的圖像?
- 27. 在uitableviewcell異步加載圖像
- 28. 異步UITableViewCell使用GCD加載圖像
- 29. 快速從磁盤加載UITableViewCell圖像
- 30. Objective C - UITableViewCell異步加載圖像
歡迎SO,沒有人將要通過所有這些代碼。你能否把你的代碼編輯到相關的部分? – Mika