一 概述

  • 音乐列表界面Storyboard界面搭建
  • 播放列表TableView数据填充及Cell设置
  • 点击播放列表处理

二 音乐列表界面Storyboard界面搭建

说明:

  • Storyboard由一个导航控制器和TableView组成
  • TableView用于展示音乐列表

三 播放列表TableView数据填充及Cell设置

3.1 说明(实现TabelView的三个方法)

  • numberOfRowsInSection:设置TableView的数据源([HMMusicsTool musics] count)
  • cellForRowAtIndexPath:每一行Cell的信息设置(HMMusicCell)-Cell信息
  • heightForRowAtIndexPath:每一行Cell的高度

3.2 TabelView的三个方法设置

#pragma mark - Table view data source
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
//    return self.musics.count;return [[HMMusicsTool musics] count];
}- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{// 1.创建cellHMMusicCell *cell = [HMMusicCell cellWithTableView:tableView];cell.music = [HMMusicsTool musics][indexPath.row];// 2.返回cellreturn cell;
}
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{return 70;
}

说明:HMMusicsTool musics中使用到了NSObject+MJKeyValue扩展,通过plist来创建一个模型数组

3.3 自定义Cell

HMMusicCell.h

#import <UIKit/UIKit.h>
@class HMMusic;@interface HMMusicCell : UITableViewCell
+ (instancetype)cellWithTableView:(UITableView *)tableView;
@property (nonatomic, strong) HMMusic *music;
@end

HMMusicCell.m

#import "HMMusicCell.h"
#import "HMMusic.h"
#import "UIImage+NJ.h"
#import "Colours.h"@implementation HMMusicCell+ (instancetype)cellWithTableView:(UITableView *)tableView {static NSString *ID = @"music";HMMusicCell *cell = [tableView dequeueReusableCellWithIdentifier:ID];if (cell == nil) {cell = [[HMMusicCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:ID];}  return cell;
}- (void)setMusic:(HMMusic *)music {_music = music;self.textLabel.text = music.name;self.detailTextLabel.text = music.singer;self.imageView.image = [UIImage circleImageWithName:music.singerIcon borderWidth:3 borderColor:[UIColor skyBlueColor]];
}
@end

四 点击播放列表处理

4.1 点击播放列表弹出播放器说明

  • 点击本行后,取消本次选中
  • 执行segue跳转到播放界面,使用modal的方式打开,关闭控制器会销毁,无法继续播放音乐
  • 自定义ViewController,执行从底部到底部动画,弹出ViewController,在此播放音频

4.2 点击列表代码

@interface HMMusicsViewController ()
// 播放界面
@property (nonatomic, strong) HMPlayingViewController *playingVc;
@end@implementation HMMusicsViewController#pragma mark - 懒加载
- (HMPlayingViewController *)playingVc
{if (!_playingVc) {self.playingVc = [[HMPlayingViewController alloc] init];}return _playingVc;
}
// 选中某一个行
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{// 1.主动取消选中[tableView deselectRowAtIndexPath:indexPath animated:YES];// 2.执行segue跳转到播放界面,使用modal的方式打开,关闭控制器会销毁,无法继续播放音乐//    [self performSegueWithIdentifier:@"musics2playing" sender:nil];// 3.设置当前播放的音乐HMMusic *music = [HMMusicsTool musics][indexPath.row];[HMMusicsTool setPlayingMusic:music];// 自定义控制器,像modal的方式弹出控制器[self.playingVc show];}

五 效果图

六 参考

  • Github-参考代码
  • Xmind原图

IOS开发之——音乐播放器-音乐播放列表(04)相关推荐

  1. linux qt4 音乐播放器,Ubuntu 14.04下安装音乐播放器 Clementine 1.2.3

    Clementine 是一款非常不错的自由开源音乐播放器,支持很多国外的云空间,比如box.com.Clementine使用qt4编写,灵感来自Amarok 1.4.Clementine还是一款跨平台 ...

  2. (0077)iOS开发之直播播放器技术名词理解以及开发准备(待实现直播demo)

    本文主要是为了理解最近比较火的直播软件.播放器软件的实现原理的调研.为以后研究相关开发做准备.调研整理: 关键词:iOS直播 类似斗鱼,虎牙等直播平台都运用了哪方面前后端技术? https://www ...

  3. 微信小程序开发之——音乐播放器-音乐推荐

    一 概述 常用组件介绍 内容区域滚动 轮播图 功能按钮 热门音乐 二 常用组件介绍 2.1 scroll-view 组件 组件介绍 scroll-view组件用于实现可滚动视图区域 一般来说,当页面的 ...

  4. android音乐播放器音乐加载,Android开源音乐播放器之在线音乐列表自动加载更多...

    系列文章 前言 当咱们的ListView数据比较多时,咱们通常都会选择分页显示,而分页显示就须要一个动做触发加载更多操做,一般咱们会使用上拉加载更多,但我以为不够人性化,由于用户须要手动上拉,因此更加 ...

  5. css3 制作音乐播放器音乐播放跳动音符

    // html代码 <div class="movement"><div class="li li-1"><span>< ...

  6. Android音乐播放器eclipse,简单的Android音乐播放器 eclipse开发的基于Android平台的音乐播放器 - 下载 - 搜珍网...

    压缩包 : 音乐播放器.zip 列表 音乐播放器/ 音乐播放器/.classpath 音乐播放器/.project 音乐播放器/.settings/ 音乐播放器/.settings/org.eclip ...

  7. blogbus背景音乐及音乐播放器设置

    很奇怪,不知道从哪儿来的流量,发现很多网友会问我关于blogbus设置背景音乐的问题.之前考虑过自己写个音乐播放器,但是因为没法兼容Firefox的原因,也就搁置没有做了.现在就一并回答所有网友的评论 ...

  8. 项目记录:基于QT的简易音乐播放器

    一.功能介绍 1.能够自定义背景图片 2.实现了音乐播放器的最基本功能,即播放与否.切换歌曲及歌单.显示歌曲信息.调节音量.播     放模式等 3.根据所选中的框体,更新播放列表及播放顺序 4.从播 ...

  9. Pygame(十九)音乐播放器1

    Pygame(十九)音乐播放器1 前情提要 本节提要 界成设计 效果图 界面代码设计 # /usr/bin/python3# Author: 爱编程的章老师 # @Time: 2021/1/17 00 ...

  10. 【QQ音乐】QQ音乐播放器超酷使用技巧逐个揭秘

    [编者按]QQ音乐播放器凭借QQ强大的人气,目前已经成为许多朋友听歌的首选了,它带给我们无与伦比的快乐音乐体验.QQ音乐播放器的功能是如此的丰富,用户不仅仅是简单的在线听歌,还可以观看MV.收听在线广 ...

最新文章

  1. java登陆界面连接数据库_java 登陆界面怎么写,连接数据库后
  2. ReentrantReadWriteLock
  3. Linux 使用NC命令永久监听本地端口
  4. ORA-12518 TNS:监听程序无法分发客户机连接 解决办法
  5. DuiLib学习笔记5——标题栏不能正常隐藏问题
  6. 跨专业选修C语言看什么书,跨专业考研如何选择?!!!!!
  7. vba宏语言_三分钟了解Excel的程序语言VBA
  8. SQL Server AlwaysOn中的几个误区
  9. 资源集 - 收藏集 - 掘金
  10. Hibernate各种主键生成策略与配置详解
  11. Django操作与内容
  12. POJ 1014 Dividing【多重背包+二进制优化】
  13. java无头浏览器_Java + Selenium 无头浏览器模式
  14. SUBMAIL是如何解决短信安全的
  15. vscode使用angular
  16. 店宝宝:拼多多上线新业务 对标微信小商店
  17. 绘制几何图形,生成辅助线的思路
  18. 用Python群发邮件
  19. sticky的基本使用
  20. cesium创建、添加json数据

热门文章

  1. 如何将图片转换成文字?强势安利2款图片转文字工具!
  2. 佰维存储通过注册:拟募资8亿 国家集成电路基金是二股东
  3. python中sqrt_Python中sqrt函数怎么用
  4. 在上海、苏州、深圳、长沙从“蜗居”到“安家”,8090后要付出多少?
  5. 常见大学机房的计算机设备,长江大学公共机房管理办法
  6. mysql 1052 ambiguous_mysql错误:Column ‘id’ in field list is ambiguous的解决方法
  7. flac音乐格式怎么转换mp3?
  8. 写博客必备!手把手教大家搭建免费图床,真香!
  9. Jenkins平台搭建
  10. router 路由守卫