开发步骤5:使用音频和键盘
在这一步中,我想将音乐添加到我之前制作的最小天气应用程序中。 然后,我尝试推进键盘交互。
这是链接音乐文件的方式:
做{audioPlayer =试试AVAudioPlayer(contentsOf:URL.init(fileURLWithPath:Bundle.main.path(forResource:“ ambiance”,ofType:“ mp3”)!))audioPlayer.prepareToPlay()} catch {print(error)
我的音频文件是“ ambiance.mp3”,引用该文件的方法是使用URL。 需要注意的一件事(因为我之前曾犯过一个错误)是我需要指出音频文件的位置,该文件的xcode会以某种方式自动放置在其bundle文件夹中。 但这对我来说并不包括在内,所以我遇到了一个错误。 然后,我按照https://www.youtube.com/watch?v=dqad3XuMwHI的指示进行操作,指示我必须检查捆绑软件资源列表以查看我的声音是否在那里,然后可以使用以下代码行进行引用: fileURLWithPath: Bundle.main.path()
。 这是检查捆绑包资源列表的方法:
最后,在单击搜索按钮时播放声音:
func searchBarSearchButtonClicked(_ searchBar:UISearchBar){audioPlayer.play()
步骤3.2:推进键盘交互。
好了,当我使用最小天气应用程序时的最后一个开发步骤中,我认识到键盘存在问题-单击鼠标(我必须使用Mac键盘)时并没有出现该问题,当我单击时也没有隐藏单击返回并搜索。 因此,这一次,我想解决该问题以使UX感觉正确。
那么,为什么键盘上次没有出现在预览中? 原因是我没做错任何事! 这是因为我在Mac上使用了Simulator,所以它根本没有显示! 如果在我自己的Iphone上模拟,那就行得通! 要使其显示在Mac Simulator上,我必须转到“硬件/键盘”,然后取消选中“连接硬件键盘”或Shift CommandK。
为什么单击返回按钮(搜索)时键盘没有消失? 我应该添加searchBar.resignFirstResponder()
以在用户完成输入并按回车键后隐藏键盘。
当用户不想搜索并单击屏幕上的其他位置时,我还添加了以下行以隐藏键盘:
覆盖func touchesBegan(_ touches:Set ,事件:UIEvent?){searchBar.resignFirstResponder()}
我在这里学习了该技术:http://studyswift.blogspot.nl/2015/01/showhide-keyboard-while-using.html
我知道在此步骤中,音乐有点简单,只是作为背景音乐而已。 我接下来的步骤计划是使其更高级,使其可以应用于多种天气条件,不仅将天气应用程序显示为天气,还将天气应用程序变成一种体验!