游戏推荐展示

展示效果

  • 展示效果

思路分析

  • 其实这个实现比较简单,也是有两种方案

    • UIScrollView:直接在上面放上UIButton即可
    • UICollectionView:每一个游戏用一个Cell来展示
  • 方案选择
    • 方案二:UICollectionView来实现
    • 一方面可以循环利用,另一方面UICollectionView真的非常好用喔

界面搭建

  • 自定义RecommendGameView

    • 由于内容比较固定,直接通过xib描述
    • 添加UICollectionView即可
    • 设置UICollectionView的布局,设置数据源以及实现数据源方法(见代码)
    • 切记:设置自定义View的autoresizingMask = .None,否则控件将不能显示
 
  1. class RecommendGameView: UIView {
  2. // MARK: 控件属性
  3. @IBOutlet weak var collectionView: UICollectionView!
  4. // MARK: 系统回调
  5. override func awakeFromNib() {
  6. super.awakeFromNib()
  7. autoresizingMask = .None
  8. let layout = collectionView.collectionViewLayout as! UICollectionViewFlowLayout
  9. layout.itemSize = CGSize(width: kGameCellW, height: kGameViewH)
  10. collectionView.contentInset = UIEdgeInsets(top: 0, left: 10, bottom: 0, right: 10)
  11. }
  12. }
  13. // MARK:- 提供快速创建的类方法
  14. extension RecommendGameView {
  15. class func recommendGameView() -> RecommendGameView {
  16. return NSBundle.mainBundle().loadNibNamed("RecommendGameView", owner: nil, options: nil).first as! RecommendGameView
  17. }
  18. }
  19. // MARK:- 遵守UICollectionView的数据源&代理
  20. extension RecommendGameView : UICollectionViewDataSource, UICollectionViewDelegate {
  21. func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
  22. return 10
  23. }
  24. func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {
  25. let cell = collectionView.dequeueReusableCellWithReuseIdentifier(kGameCellID, forIndexPath: indexPath) as! CollectionGameCell
  26. cell.backgroundColor = indexPath.item % 2 == 0 ? UIColor.redColor() : UIColor.blueColor()
  27. return cell
  28. }
  29. }
  • 将自定义View添加到UICollectionView中

    • 懒加载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
  5. }()
  • 添加UIContentView中
 
  1. collectionView.addSubview(gameView)
  2. collectionView.contentInset = UIEdgeInsets(top: kCycleViewH + kGameViewH, left: 0, bottom: 0, right: 0)

展示数据

  • 因为该位置展示的数据,其实是请求热门游戏中10组数据,因此直接展示即可
  • 将之前请求到的groups数组,传递给gameView
    • 对数据进行进一步处理

      • 将前两组数组删除(热门、颜值)
      • 在最后添加更多分组(最后有一组更多)
  • 自定义Cell,用于展示数据
    • 通过Xib直接描述
  • 根据模型展示数据
    • 代码如下
 
  1. class CollectionGameCell: UICollectionViewCell {
  2. @IBOutlet weak var iconImageView: UIImageView!
  3. @IBOutlet weak var titleLabel: UILabel!
  4. var group : AnchorGroup? {
  5. didSet {
  6. let iconURL = NSURL(string: group?.icon_url ?? "")!
  7. iconImageView.kf_setImageWithURL(iconURL, placeholderImage: UIImage(named: "home_more_btn"))
  8. titleLabel.text = group?.tag_name
  9. }
  10. }
  11. override func awakeFromNib() {
  12. super.awakeFromNib()
  13. iconImageView.layer.cornerRadius = iconImageView.bounds.width * 0.5
  14. iconImageView.layer.masksToBounds = true
  15. }
  16. }

小码哥-玩转【斗鱼直播APP】系列之游戏推荐展示相关推荐

  1. 小码哥-玩转【斗鱼直播APP】系列之项目部署

    项目部署目的 任何一个项目最好使用源代码管理工具 源代码管理工具可以帮助我们解决备份.版本回退等等问题 因为是非基础篇,因此具体好处不在累述 常见的源代码管理工具: SVN: 集中式源代码管理工具 G ...

  2. 小码哥-玩转【斗鱼直播APP】系列之获取APP图片资源

    重要提醒 原作者的代码有少许问题, 可能会崩溃 我已经在我fork的代码中修复了问题. 请大家去我的Github上下载该工具. 如果对你有帮助, 可以star一下哈. Github地址: coderw ...

  3. 小码哥-玩转【斗鱼直播APP】系列之利用青花瓷抓取数据

    利用青花瓷抓取数据 青花瓷是什么? 当然这里可不是周董的歌曲, 而是我们用于抓取接口的工具. 安装一下这个软件 百度搜索该工具会找到很多绿色版(破解版的文艺说法). 安装即可, 不再累述. 手机端配置 ...

  4. 小码哥-玩转【斗鱼直播APP】系列之首页导航栏设置

    首页导航栏设置 重点掌握内容 导航栏添加Items 给系统的类扩充方法 扩充便利构造函数 效果展示 在iOS开发中,导航栏的设置是必不可少的一部分. 通常导航栏中会放很多的UIBarButtonIte ...

  5. 小码哥-玩转【斗鱼直播APP】系列之实现无限轮播

    实现无限轮播 生活杂谈 最近很多童鞋私信我,Swift项目有些语法跟不上.希望我出OC版的(OC版我会在后续推出),但是以我的考虑来说,Swift在语言排行版上面其实已经超过OC,另外国内现在新项目一 ...

  6. 小码哥-玩转【斗鱼直播APP】系列之框架搭建

    搭建效果展示 框架搭建分析 首先最底部是一个UITabbar,因此我们可以用一个UITabBarController作为启动控制器 分别添加子控制器HomeVc.LiveVc.FollowVc.Pro ...

  7. 小码哥-玩转【斗鱼直播APP】系列之首页布局分析实现

    本帖最后由 王红元老师 于 2016-9-14 21:25 编辑 布局首页分析实现 完成最终效果 这个效果还是挺常见的哈 效果分析: 顶部是一个工具类,并且为了该工具类可以复用.(其他界面也用到)最好 ...

  8. 小码哥-玩转【斗鱼直播APP】系列之布局推荐界面

    布局推荐界面 实现效果 今天内容完成效果 推荐界面分析 上层有无限轮播器(之后再完成) 滚动的UIScrollView或者UICollectionView(之后再完成) 下面是UICollection ...

  9. 小码哥-玩转【斗鱼直播APP】系列之项目基本设置

    设置的内容 任何一个项目在新建之后都有很多东西需要进行设置. 比如版本号.BundleID.部署版本等等 设置BundleID.部署版本.横竖屏等 设置图标.启动图片 设置项目名称 Info.plis ...

最新文章

  1. vue点击图片后复制图片url_简单漂亮的(图床工具)开源图片上传工具——PicGo...
  2. 部署Django到云服务器(centos+nginx+mysql+uwsgi+python3)【操作篇(1)】
  3. docker镜像构建工具kaniko构建过程缓慢原因探究
  4. Android JNI_OnLoad()函数
  5. VBA实战技巧精粹011:新建只有1张工作表的工作簿
  6. Centos如何使用SSH远程连接主机
  7. linux mysql 乱码怎么解决_MySQL_linux中解决mysql中文乱码方法,改默认编码:/etc/init.d/my - phpStudy...
  8. 转: 在CentOS 6.X 上面安装 Python 2.7.X
  9. 【LOJ#6198】—谢特(后缀数组+01Trie)
  10. 【TypeScript介绍】一文带你初步了解TypeScript
  11. win10用账户登录计算机,Win10支持两种账户登录,一种是本地账户,另一种是Microsoft账户...
  12. iOS开发适配iPhone X 齐刘海处理,代码适配iPhoneX
  13. 数据安全技术体系建设的思考
  14. 企业内网防火墙搭建实验
  15. [信号处理] #1 FFT结果的物理意义
  16. C语言qsort函数对二维数组排序的不同情况
  17. Oracle项目管理系统之费用与成本
  18. TCP/IP实现(九) 插口I/O
  19. 【LM】360N4S解决手机关屏后经常无法唤醒的情况刷机第三方
  20. 外媒 华为鸿蒙,外媒再放狠话!华为鸿蒙将成全球前三大系统:首台鸿蒙手机也来了...

热门文章

  1. c语言 printf 库函数,关于printf的几个C语言库函数
  2. Delphi如何使用HooKAPI的方式获取SQLITE加密数据库密码
  3. 聊一聊平时常用的加密算法
  4. 推荐系统中的特征工程
  5. iPhone难卖,被欧洲反垄断的服务业务也难赚钱了,苹果的日子艰难
  6. python调用打印机打印图片_在python中通过图像发送到打印机上的文本
  7. java.lang.NoClassDefFoundError: net/sf/ehcache/CacheManager
  8. YOLOv5 CSGO敌人识别和鼠标调控
  9. 动态IP抓取快递信息
  10. 无法安装vcredist_x86.exe, 提示无法访问Windows Installer服务