开发步骤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

我知道在此步骤中,音乐有点简单,只是作为背景音乐而已。 我接下来的步骤计划是使其更高级,使其可以应用于多种天气条件,不仅将天气应用程序显示为天气,还将天气应用程序变成一种体验!