玩转【斗鱼直播APP】系列之游戏推荐展示 作者:小码哥教育 游戏推荐展示 展示效果 展示效果 思路分析 其实这个实现比较简单,也是有两种方案 UIScrollView:直接在上面放上UIButton即可 UICollectionView:每一个游戏用一个Cell来展示 方案选择 方案二:UICollectionView来实现 一方面可以循环利用,另一方面UICollectionView真的非常好用喔 界面搭建 自定义RecommendGameView 由于内容比较固定,直接通过xib描述 添加UICollectionView即可 设置UICollectionView的布局,设置数据源以及实现数据源方法(见代码) 切记:设置自定义View的autoresizingMask = .None,否则控件将不能显示 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. classRecommendGameView:UIView{ // MARK: 控件属性 @IBOutlet weak var collectionView:UICollectionView! // MARK: 系统回调 override func awakeFromNib(){ super.awakeFromNib() autoresizingMask =.None let layout = collectionView.collectionViewLayout as!UICollectionViewFlowLayout layout.itemSize =CGSize(width: kGameCellW, height: kGameViewH) collectionView.contentInset =UIEdgeInsets(top:0, left:10, bottom:0, right:10) } } // MARK:- 提供快速创建的类方法 extension RecommendGameView{ class func recommendGameView()->RecommendGameView{ returnNSBundle.mainBundle().loadNibNamed("RecommendGameView", owner:nil, options:nil).first as!RecommendGameView } } 25. 26. 27. 28. 29. 30. 31. 32. // MARK:- 遵守UICollectionView的数据源&代理 extension RecommendGameView:UICollectionViewDataSource,UICollectionViewDelegate{ func collectionView(collectionView:UICollectionView, numberOfItemsInSection section:Int)->Int{ return10 } func collectionView(collectionView:UICollectionView, cellForItemAtIndexPath indexPath:NSIndexPath)->UICollectionViewCell{ let cell = collectionView.dequeueReusableCellWithReuseIdentifier(kGameCellID, forIndexPath: indexPath)as!CollectionGameCell cell.backgroundColor = indexPath.item %2==0?UIColor.redColor():UIColor.blueColor() return cell } } 将自定义View添加到UICollectionView中 33. 34. 35. 36. 37. 38. 懒加载RecommendGameView对象 将gameView添加到UICollectionView中 设置UICollectionView的内边距 代码如下: 懒加载RecommendCycleView 1. private lazy var gameView :RecommendGameView={ 2. let gameView =RecommendGameView.recommendGameView() 3. gameView.frame =CGRect(x:0, y:-kGameViewH, width: kScreenW, height: kGameViewH) 4. return gameView 本文来源:https://www.wddqw.com/doc/0ea565f1f605cc1755270722192e453610665bd3.html