[Swift通天遁地]八、媒体与动画-(11)实现音乐播放的动态视觉效果
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
➤微信公众号:山青咏芝(shanqingyongzhi)
➤博客园地址:山青咏芝(https://www.cnblogs.com/strengthen/)
➤GitHub地址:https://github.com/strengthen/LeetCode
➤原文地址:https://www.cnblogs.com/strengthen/p/10354814.html
➤如果链接不是山青咏芝的博客园地址,则可能是爬取作者的文章。
➤原文已修改更新!强烈建议点击原文地址阅读!支持作者!支持原创!
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
本文将演示使用第三方类库实现音乐播放的动态视觉效果。
首先确保已经安装了所需的第三方类库。双击查看安装配置文件【Podfile】
1 platform :ios, ‘12.0’ 2 use_frameworks! 3 4 target 'DemoApp' do 5 source 'https://github.com/CocoaPods/Specs.git' 6 pod 'AudioIndicatorBars' 7 end
根据配置文件中的相关设置,安装第三方类库。
安装完成之后,双击打开项目文件【DemoApp.xcodeproj】
在左侧的项目导航区,打开故事板文件【Main.storyboard】
点击控件库图标,打开控件库的列表窗口。双击视图控件,往故事板中插入一个视图。
点击背景颜色【Background】背景颜色右侧的下拉箭头,弹出颜色预设面板,
选择一种颜色作为视图的背景颜色。
点击尺寸检查器图标,进入尺寸设置面板,修改视图在故事板中的位置。
点击控件库图标,打开控件库的列表窗口。
双击按钮控件,往故事板中插入一个【Play】按钮控件。
在尺寸检查器中设置按钮的X轴和Y轴坐标,设置按钮的Width和Height。
点击属性检查器图标,设置按钮的标题文字。设置按钮的背景颜色Background。
继续添加一个【Stop】按钮并进行相同的设置。选择视图对象,点击身份检查器图标,进入身份设置面板。
Class:AudioIndicatorBarsView
返回属性设置面板,此时在属性设置面板中,多了三个属性设置选项:Corner、Bars、Color
现在将故事板中的控件,与类文件中的属性和方法进行连接。
点击显示辅助器图标,点击隐藏右边的面板区。
在视图上按下鼠标右键,并拖动到右侧的类文件中,从而建立一个和视图绑定的属性。
【Name】:AudioIndicatorBarsView,输入属性的名称。
点击【Connect】,在类文件中,创建一个和视图控件相连接的属性。
接着对【Play】按钮进行连接,
【Connection】:Action
【Name】:PlayAnimation
点击【Connect】,在类文件中,创建一个和按钮控件相连接的动作。
同样对【Play】按钮进行连接,
【Connection】:Action
【Name】:StopAnimation
点击【Connect】,在类文件中,创建一个和按钮控件相连接的动作。
选择用于显示动态视觉效果的视图对象,
打开身份设置面板,设置视图控件的模块属性:【Module】:AudioIndicatorBars
在左侧的项目导航区,打开视图控制器的代码文件【ViewController.swift】
1 import UIKit 2 //引入已经安装的第三方类库 3 import AudioIndicatorBars 4 5 class ViewController: UIViewController { 6 7 @IBOutlet var audioIndicatorBarsView: AudioIndicatorBarsView! 8 override func viewDidLoad() { 9 super.viewDidLoad() 10 // Do any additional setup after loading the view, typically from a nib. 11 12 } 13 14 //在响应播放按钮点击事件的方法中, 15 @IBAction func playAnimation(_ sender: AnyObject) { 16 //通过调用视图对象的开始方法,开始播放视觉动画。 17 self.audioIndicatorBarsView.start() 18 } 19 20 //在响应停止按钮点击事件的方法中, 21 @IBAction func stopAnimation(_ sender: AnyObject) { 22 //通过调用视图对象的停止方法,结束视觉动画的播放。 23 self.audioIndicatorBarsView.stop() 24 } 25 26 override func didReceiveMemoryWarning() { 27 super.didReceiveMemoryWarning() 28 // Dispose of any resources that can be recreated. 29 } 30 }