SwiftUI 基于Xcode的ios开发 学习笔记 No.1登陆界面

  • 是我是我还是我
  • SwiftUI是使用swift语言进行ios开发的框架
  • 区别于Objective-C
  • 和Obejctive-C、使用Java语言的Android Studio一起同步学习

参考博客


布局

首先看一个报错:

Function declares an opaque return type, but has no return statements in its body from which to infer an underlying type:

原因是
var body: some View {
}
里只能存在一个layout,多出任何内容就会报错;因此我们只能在一个大的布局里面嵌套设计。

  • HStack水平放置,VStack垂直放置

添加组件

  • 之前android可以在xml文件中拖拽组件完成UI设计,使用objective-c的ios开发中通过storyboard进行拖拽组件完成UI设计;两者都可以图形界面与代码分离。
  • 现在的方式是可以手写代码/拖拽组件自动生成代码,然后在旁边的canvas进行preview预览当前布局设计。

常用组件

  • Label
Text("手机软件开发") // 是一个label
@State var account: String = "" //变量声明
@State var password: String = ""
  • TextField
HStack {
    
    
                Image(systemName: "person")
                TextField("用户名", text: $account, onCommit: {
    
    
                })
            }.padding(.all, 25.0)
  • 按钮及动作事件的编写
Button(action: {
    
    
                    print("login action")
                }) {
    
    
                    Text("登陆")
                }.padding(.all, 25.0)

界面

主界面在ContentView.swift文件
对应安卓的MainActivity 和 基于OC的ios的Main.storyboard?
(复习:多个界面
基于OC的ios开发中是创建ViewController
安卓是创建Activity.java , 且必须在AndroidManifest.xml文件中声明activity元素)


变量与常量

normal 常量
@state 变量


页面跳转

复习:
基于OC的ios开发中 storyboard模式下控件和ViewController之间segue直接完成
Android Studio的android开发中:使用intent跳转

SwiftUI中使用NavigationView

NavigationView {
    
    
            NavigationLink(
                destination: LoginView(),isActive: $loginAccountIsActive){
    
    
                    Text("点我跳转")
                }
            
        }

在这里插入图片描述

实现效果:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_56336619/article/details/115059897
今日推荐