2017-01-18 45 views
0

我想在'UITableViewCell'中創建一個幻燈片。所以,我需要使用'UIPageViewController'來製作幻燈片。我試圖在這裏實現一個解決方案link here但我不能將UIPageViewController添加到UITableViewCell內容視圖。如何在UITableViewCell中實現UIPageViewController

這是我的UITableViewCell代碼

let slideshowPageViewController = SlideshowPageViewController() 
self.addSubview(slideshowPageViewController) 

錯誤:無法鍵入 'UIPageViewController' 的值轉換爲 預期的參數類型 '的UIView'

有人建議另一種解決辦法?

回答

1

我不會推薦這個。 UIPageViewController,嗯,是一個UIViewController。對於任何真實世界的使用,我總是發現它太複雜 - 特別是如果您只是需要循環播放幻燈片的圖像。

我會建議添加一個孩子UIScrollView到UITableViewCell和自己處理幻燈片代碼。

Here is a code sample在設置UIScrollView時有一些好的做法。最重要的部分被計算scrollViewDidScroll委託調用當前索引:

func scrollViewDidScroll(_ scrollView: UIScrollView) { 
    // Calculate current index 
    let index = Int(round(scrollView.contentOffset.x/scrollView.frame.size.width)) 
    updateCurrentIndex(index: index) 
} 

如果您需要滾動用戶的幻燈片,不直接調用updateCurrentIndex。相反,調用setContentOffset,委託仍然會觸發,並且您的updateCurrentIndex方法將起作用,就像用戶手動滾動一樣。

@IBAction func didNext() { 
    if (currentIndex < scrollView.subviews.count-1) { 
     let point = CGPoint(x: scrollView.bounds.size.width * CGFloat(currentIndex + 1), y: 0) 
     scrollView.setContentOffset(point, animated: true) 
    } else { 
     performSegue(withIdentifier: "showTermsSegue", sender: self) 
    } 
} 
+0

我喜歡你的解決方案,但問題是我想製作單車形象。我可以用無限循環實現UIScrollView嗎? – Untilfinished

+0

您是否想回到第一頁並重新開始,還是總是看起來正在移動到新的頁面(從左到右)?你會允許用戶交互(允許用戶循環圖像),還是你想自動循環圖像?無論哪種方式,我不認爲UIPageViewController允許無限循環出框。 –

+0

我想自動循環播放圖像,用戶也可以滑動以更改幻燈片圖像。 (像旋轉木馬) – Untilfinished

0

我努力尋找解決方案。而且,我已經找到了。

在rowAtIndexPath中,我添加了childViewController,它適用於我。

let slideshowPageViewController = SlideshowPageViewController() 
self.addChildViewController(slideshowPageViewController) 
cell = tableView.dequeueReusableCell(withIdentifier: "Slideshow", for: indexPath) 

cell.contentView.addSubview(slideshowPageViewController.view) 

希望這可以幫助任何有同樣問題的人。

相關問題