004.【iOS】“绝地打靶”图形界面实现及适配

今天完成了王寒老师让不懂编程的人爱上iPhone开发(2018秋iOS12+Swift4.2+Xcode10版)#10、#11、#12、#13、#14、#15以及#16开了一点头。

今日收获

今天可以说是收获颇多的一天了,前几天大体上按教程走也都没什么bug,但今天还是遇到了许多小状况(又感受到了做课设时被bug支配的恐惧😱)

具体内容记录如下,也可以留作以后备忘
昨天的效果


昨天最后效果

今天所学:

  1. 让玩家按了提示窗中的确定后再开始新一轮
    实现方法:原来的handler是nil,这样在点击后弹出的对话框会直接消失,在handler中传入你希望接下来调用的动作,即可在点击“嗷呜~”后触发该动作
let action = UIAlertAction(title: "嗷呜~", style: .default, handler: {_ in self.startNewRound()})

  1. 必包:{_ in self.startNewRound()}

  2. 隐藏状态栏
    在BullsEye -> General -> Deployment Info中勾选hide status bar即可

  3. 添加各种背景图片


    添加好了背景图片和各个按钮的背景图片
滑动条的背景图片也修改了
  1. 添加新页面

    1. 代码部分 file-> new -> file -> cocoa touch class -> xxxViewController -> creat
    2. 视图部分:mainboard中添加view controller
    3. 在Iinterface builder中点击identity inspector,class选择我们新增的xxxViewController,就可以把视图和代码关联起来
  2. 一个viewController关联另一个viewController: segue
    按住control键从第一个页面连线到第二个页面,选择Modal即可

  3. 直接创造一个segue 到另一个页面似乎会完全刷新另一个页面使其恢复初始状态,所以要保证从另一个页面返回时,原页面保持之前的状态的话,应该添加新的IBAction,而不是从返回键创造一个segue到原页面

 @IBAction func close(){
        dismiss(animated: true, completion: nil) 
    }
  1. 加载本地html文件


    本地html文件
  2. 在线加载网页
    加载网页这部分代码只能说能懂了,但以后具体的灵活用法还需要专门学习。


    在线加载网页
 override func viewDidLoad() {
        super.viewDidLoad()
        
        //加载本地html文件BullsEye
        if let url = Bundle.main.url(forResource: "BullsEye", withExtension: "html") {
        //在线加载网页
       //if let url = URL.init(string : "https://www.jianshu.com/u/e68f6f037b27"){
            let request = URLRequest(url: url)
            webView.load(request)
        }
    }
  1. Auto Layout自动布局
    这部分主要是添加align和constrain,以便在不同大小的手机上也能在合适的位置显示

  2. button的背景可以直接在attribute inspector中修改
    我开始竟然是添加了一个图片和button位置重叠来实现的🤦‍♀️,然后自动布局的时候就异常麻烦了,后来搜索一下才知道button可以直接修改image和background

  3. 删除约束(constrain)直接选中该约束按delete即可

  4. iPhoneX系列刘海机型的适配问题
    只要在background的size inspector中双击代表四个边对齐的constrain,进入详细信息,把safe area改为superview即可,如果不想让刘海挡住内容可以选择safe area,这个小游戏四周没有什么会被遮挡的内容,直接让四个边都贴紧superview即可。


    未适配时周围有白边

    成功适配后,可以满屏显示

碎碎念

非常神奇!写代码真的能够使人快乐。

今天东方之猪由于没有什么学习的劲头申请休假去打游戏了,我就只能一个人去图书馆学习,一个人还是比较懒散一点,所以本来就打算下午出去逛一下看看展。正好清华艺博有两个感兴趣的展,就想着去一趟顺便去找学长聊一聊,也问一问复试怎么准备。

但可能由于自己的性格原因,虽然奋力鼓起勇气,字都在对话框打好了,还是不敢发送QAQ,感觉鸭梨山大,然后都不知道还该不该去艺博了,纠结半天。然后就情不自禁的走到了图书馆打开电脑继续学iOS了,自己知道这其实是一种逃避,但没想到有一天编程竟然能成我的一个逃避的港湾,非常神奇的感觉。

第一次体会到,靠编程来缓解压力的神奇感觉。因为代码的世界确实就是自己的世界,不像与人打交道那么复杂,只要你沉浸其中,这个世界就完全由你打造。

但还是要直面现实的,尊重自己的性格不要去焦虑,但还是很有必要掌握一些与人交往的方法,明天约朗的朋友吃饭,请教一下与人沟通的方法好了,然后新的一年好好开始~

明天应该能结束这个iOS教程1啦,期待王寒老师出教程2!

然后最近两天应该会写年终总结与新年规划啦~

如果觉得还不错的话动动手指点个喜欢吧(///ω\\\) 需要鼓励~
欢迎提议和交流鸭🦆(///ω\\\)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一 来看一下IB开发的优点以及缺点 1.1 优点 1.1.1 开发和维护效率高IB开发与纯代码开发相比, 效率至...
    奥卡姆剃须刀阅读 1,545评论 5 10
  • 吃完晚饭,你们来到宗角禄康公园散步,这个时候也才七点多,太阳躲进了云层里,天空依然碧蓝如洗,西边的天空浓云密布,...
    浅浅落落阅读 425评论 0 1
  • 本周是践行易效能第三周 作息方面: 从一开始的不规律 到现在固定的生物钟醒来 已经慢慢养成了早睡早起的习惯 眼睛也...
    悦霖14131阅读 268评论 1 1
  • 今天下午去菜店买菜,我买的是手抓饼。 手抓饼在冰箱里面冰冻着,我从一侧打开滑动门,取完后关上,滑动门刚好碰到另一侧...
    我是书童抱一阅读 195评论 0 0
  • 记得刚上初中开始寄宿,一有机会就喜欢洗头,这样就能名正言顺地披着一头长发去上晚自习,还特意压制住平时随意的步调开始...
    未阑阑阅读 502评论 1 3