iOS 开发环境配置备忘

做个简单备忘。以后还得继续练习补充。

下载Xcode,建立默认的 project,就可以直接运行了:

image-20221208午前101417830

一、Project

image-20221208午前112203800

Project interface分为 Storyboard 和 SwiftUI。这两者的区别为:

  • storyboardsXIB(Xml Interface Builder) 包含相当多的 XML 语句,不容易阅读,也不容易编辑。
  • storyboards 随着时间的推移越来越大。
  • XIBSwift 是非常独立的东西,XIBSwift 代码不了解,而 Swift 代码对 XIB 也不了解。
  • SwiftUI 是一个只适用于 Swift 的框架。
  • SwiftUI 代码比 storyboardsXML 更容易阅读和管理。

二、真机运行

如果是在真机上运行:

  1. 需要在xcode上配置证书
  2. 需要在手机上开启开发者模式:设置->隐私与安全性->开发者模式
  3. 需要在手机上信任开发者证书

以上都是免费的,不需要注册开发者账号。如果使用模拟器,则不用这么麻烦。

另外如果是从互联网上下载的代码,建议不要随意在真机上运行,有安全风险。

image-20221207午前113451384

image-20221207午前114103301

image-20221207午前115613715

image-20221207午前115553351

三、xcode 简单功能

右上角的+用得最多了,添加各种组件。

image-20221208午前104903090

asset目录里有很多不同尺寸的图:

image-20221208午前105037207

素材

可以方便导出各种格式尺寸的图。

编辑页面

image-20221208午前113552569

选择 Assistant 可以将代码和界面放一起:

image-20221208午前113635472

关联图标和代码:IBOutlet

声明组件和Action可以用拖拽的方式,ctrl+拖动

image-20221208午後20539567

image-20221208午後20653439

image-20221208午後20801275

关联关系可以在图形上右键查看:

image-20221208午後40128397

image-20221208午後34618912

四、自适应布局

constraints,指定item和边缘的距离。

未标题-1

alignment/pinning

image-20221213午後42724791

iOS里的stack view组件可以类比为html中的div组件。

view controller里的文件视图类似于photoshop里的图层反过来。

stack view

上图右下角的最右边那个收纳的图标。

五、纯代码生成view和controller

这样在图形化界面里我们就根本看不见这个view了,没办法用拖拽的方式给它添加东西。

  • 新建一个 swift 文件:

image-20221222午後13259831

  • 命名为ViewController secondVC,改一下 import 为 UIKit`

  • 定义一些基本的变量保存数据

  • override func viewDidLoad

  • 定义一个组件,例如 UILabel

  • 在上一个页面的ViewController里给 secondVC 的变量赋值

  • 在上一个页面的ViewControllerself.present(secondVC, animated:true, completion: nil)

六、拖拽式生成view并绑定controller

在图形界面新建一个viewController

image-20221222午後12943449

image-20221222午後13017785

新建一个cocoa touch class:

image-20221222午後12312137

image-20221222午後12409400

然后在 storyboard 里点一下还没有绑定 vc 的图形:

image-20221222午後12626236

image-20221222午後12645768

选择之后就可以看到它绑定好了。

image-20221222午後12711338

七、生成view间关联:segues

image-20221222午後30157878

设定segues的identifier名字:

image-20221222午後30336922

然后在代码中触发这个切换:

self.performSegue(withIdentifier: "testSeg", sender: self)

同时,在前一个 controller 里我们可以做这个view 在切换前的准备工作:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
        // Get the new view controller using segue.destination.
        // Pass the selected object to the new view controller.
          if segue.identifier == "testSeg" {
            let destinationVC = segue.destination as! ResultViewController
            destinationVC.bmiValue = calculatorBrain.getBMIValue()
            destinationVC.advice = calculatorBrain.getAdvice()
            destinationVC.color = calculatorBrain.getColor()
        }
    }

在新的view里返回上一个view: dismiss

    @IBAction func recalculatePressed(_ sender: UIButton) {
        dismiss(animated: true, completion: nil)
    }

在运行时可以用3D的方式查看图层,点击中间那个图层图标:

image-20221222午後34223358

image-20221222午後34307338

先点击黄色图标,再点击再菜单栏上选择 Editor->Embed In->Navigation Controller

image-20221228午後55346354

image-20221228午後55313868

navitationItem.hidesBackButton = true

八、iOS13新增图标

image-20221222午後54231470

九、暗色模式与矢量图

Image Set -> Appearance -> 设置明色与暗色

Image Set-> Resizing -> 保留矢量信息

image-20221226午後85627331

十、Firebase

十一、xcode 文档

image-20221222午後10106457

image-20221222午後10039592


如果本文对你有帮助,欢迎投食

Mac 安装 Xcode 卡住 swift 开发备忘