SwiftUI View控件
持续学习更新中…

1. Text 文字(相当于Swift 和 OC 中的 UILabel)

Text("Text ").bold() //加粗.italic() //斜体.kerning(10)//字间距.tracking(10) //字间距.underline() //下划线.blur(1)  //模糊效果.lineSpacing(20) //行间距.multilineTextAlignment(.leading) //文字对齐方式.lineLimit(2) //限制展示行数.frame(width: 250, height: 35 alignment: .leading) // 文字尺寸、展示位置.font(.system(size: 20)) //字体大小     或者使用苹果提供的字体样式 .font(.headline).foregroundColor(.white) //字体颜色.background(Color.black) //背景设置,可设置背景色、背景图片等
2. Image 图片 (相当于Swift 和 OC 中的 UIImageView)
Image("tabbar_mine")  //使用 Assets.xcassets 中的图片创建图像
Image(systemName: "star")  //使用系统提供的符号创建图像

SwiftUI Image

3.Button(Tap) 按钮(相当于Swift 和 OC 中的 UIButton)

用法1

Button("登录/注册") { //文字print("登录/注册")     //点击事件
}

用法2

Button {print("setting") //点击事件
} label: {Image("mine_set") //图片.frame(width: 60, height: 44).padding(.top, K_StatusHeight)
}
4.Tap 手势(相当于Swift 和 OC 中的 UITapGestureRecognizer) 手势
Image("mine_set").onTapGesture { //单击事件print("setting")  }
///- 计数:触发操作所需的点击或点击次数
///“行动” 中提供了关闭。默认为 “1”。
///- 动作:要执行的动作。/// - Parameters:///    - count: The number of taps or clicks required to trigger the action///      closure provided in `action`. Defaults to `1`.///    - action: The action to perform.public func onTapGesture(count: Int = 1, perform action: @escaping () -> Void) -> some View
5.Spacer

占位的 view

6.Divider

分割线,VStack 里面分割线是水平方向的线

HStack 里面分割线是竖直方向的线

7.Rectangle

矩形 View

8.RoundedRectangle

圆角矩形 View 圆角等于高度的一半时,矩形两边正好是两个半圆

9、TextField

明文输入框,相当于OC和Swift 的 UITextField(非密码输入框)
SwiftUI 输入框(TextEditor 和 TextField、SecureField)

10、SecureField

密文输入框,相当于OC和Swift 的 UITextField(密码输入框)
SwiftUI 输入框(TextEditor 和 TextField、SecureField)

11、TextEditor

多行输入框,相当于OC和Swift 的 UITextView
SwiftUI 输入框(TextEditor 和 TextField、SecureField)

----------------------------->1<-----------------------------

1.VStack

让 View 纵向排列

2.HStack

让 View 水平排列

3.ZStack

垂直于屏幕方向排列

4.Group

分组,显示多个自动预览页的时候,可以把自动预览页放进 Group,

5.GeometryReader

一个 View,会尽量的扩张自己,尽可能多占空间,可以放 View,可以获取自己的宽高

6.ScrollView

可滑动的 View

----------------------------->2<-----------------------------

1.List

可以展示多个不同的 View,可以用 for Each 语句铺 view
SwiftUI List

2.ForEach

for 循环 遍历数组, 数组类型可以为值类型,甚至view

3.NavigationView

导航栏可以进行跳转
SwiftUI 导航栏 NavigationView

4.NavigationLink

导航栏的跳转
SwiftUI 跳转到新页面(NavigationLink、fullScreenCover)

5.EmptyView

空 View

6.Model presentation

模态推出一个页面
SwiftUI 跳转到新页面(NavigationLink、fullScreenCover)

----------------------------->3<-----------------------------

ViewModifier 控件修改器,这是个协议,返回的事一个 some view

1.frame

修改 View 宽高
设置最大、最小宽高

@inlinable public func frame(width: CGFloat? = nil, height: CGFloat? = nil, alignment: Alignment = .center) -> some View@inlinable public func frame(minWidth: CGFloat? = nil, idealWidth: CGFloat? = nil, maxWidth: CGFloat? = nil, minHeight: CGFloat? = nil, idealHeight: CGFloat? = nil, maxHeight: CGFloat? = nil, alignment: Alignment = .center) -> some View
2.padding

修改 View 上下左右的间距

padding() //默认上下左右15的间距
padding(10) //设置上下左右全部间距
padding(.top, 60)   //设置单侧方向、间距
padding(EdgeInsets(top: 10, leading: 10, bottom: 10, trailing: 10))//设置上下左右各个方向的间距
3.offset

修改 View 水平方向或竖直方向偏移量

4.clipShape

把 View 裁成某个形状 (圆形)

5.clipped

把超出 View 得部分裁剪掉

6.scaleEffect

实现缩放效果

----------------------------->4<-----------------------------

1.foregroundColor

修改文字颜色

2.opacity

修改透明度

3.hidden

隐藏 View

4.overlay

在 View 前面添加东西

5.background

在 View 后面添加 some view
备注:Color、Image 等都属于 view

----------------------------->5<-----------------------------

1.ListRowInsets
修改一个 View 在 List 里面的上下左右间距

2.edgeslgnoringSafeArea
当一个 View 的一部分处在安全区域的时候,要在安全区域里显示内容可以用~~忽略安全区域

3.navigationBarTitle
设置导航栏的标题

4.navigationBarHidden
设置了标题之后,~~导航栏隐藏才会起作用,

5.navigationBarItems
可以在导航栏里 添加其他的 View

6.navigationViewStyle
我们在适配 ipad 的时候用到,可以使 ipad 显示的效果和 iphone 一样

----------------------------->6<-----------------------------

SwiftUI Button

  1. buttonStyle
    当 list 里面的一个 View 有多个 button 的时候,点击这个 View 所有的 button 都会响应,要解决这个问题,我们设置了 buttonStyle,设置为 BorderlessButtonStyle, 其实设置成其他的 buttonStyle 也可以,我们也可以自定义 buttonStyle

----------------------------->7<-----------------------------

SwiftUI -> UIKit
1.UIHostingController
把 swiftUI 的 View 封装成 UIViewController

----------------------------->8<---------------------------

UIKit -> SwiftUI
1.UIViewRepresentable
协议,至少实现两个函数,创建函数 makeUIView 和更新函数 updateUIView,如果需要可以自定义 Coordinator

2.UIViewControllerRepresentable
协议,至少实现两个函数,创建函数 makeUIViewController 和更新函数 updateUIViewController,如果需要可以自定义 Coordinator

----------------------------->9<---------------------------

Protocol
1.ObservableObject(@Published)
我们在用到环境对象的时候,环境对象的类型必须遵循这个协议,这个协议规定了类型必须是 class 类,这个类里面的属性加上 @Published 修饰词,属性改变用到这个属性的 View 就会更新

----------------------------->10<---------------------------

语法
1.@State
通常是 View 自己使用,可以起到更新属性的时候就更新 View

2.@Binding
子 View 使用父 View 的属性时,需要使用这个修饰词可以起到更新属性的时候就更新 View,父 View 和子 View 的属性绑定在一块,一个改变另一个也会改变,同时更新 View

3.@Environment

4.@EnvironmentObject
必须遵循 ObservableObject 协议,协议详情请看 12 页,需要在多个页面共享的话 用这个修饰,声明之后不需要赋值,因为它会从父 View 里面找相应的值,如果找不到 app 会闪退

5.@ObservedObject
必须遵循 ObservableObject 协议,协议详情请看 12 页,复杂类型属性可以使用这个

SwiftUI 控件相关推荐

  1. SwiftUI 控件之Text 文本框显示古诗(含demo)

    代码 import SwiftUIstruct ContentView: View {let gushi = """风急天高猿啸哀,渚清沙白鸟飞回.无边落木萧萧下,不尽长 ...

  2. iOS SwiftUI篇-2 UI控件 Text Button Image List

    iOS SwiftUI篇-2 UI控件 Text Button Image List Text 显示文本,相当于UILabel import SwiftUIstruct TextContentView ...

  3. macOS SwiftUI 选择器组件规范之 01 分段控件Segmented Controls

    macOS SwiftUI 选择器组件规范之 01 分段控件 什么是分段控件(Segmented Controls) 分段控件是两个或多个分段的水平集合,每个分段都充当一个按钮-通常是一个切换按钮.分 ...

  4. SwiftUI之猜国旗APP及色彩类控件

    源码地址 效果图 思路 添加背景色 控件垂直排列 点击事件处理 代码实现 struct ContentView: View {@State private var showAlert = false@ ...

  5. Qt---布局,设置控件边距,拉伸因子

    QGridLayout *LeftLayout =new QGridLayout(this); LeftLayout->addWidget(label1, 0, 0); //label1在第1行 ...

  6. HarmonyOS 字体在自身控件中居中(使用text_alignment)

    要实现的效果就是把字体在控件居中 HarmonyOS  使用的是text_alignment 属性,详细的如下 text_alignment 文本对齐方式 left 表示文本靠左对齐. 可以设置取值项 ...

  7. Android 如何防止用户同时点击多个控件问题

    qa 测试说 一次连点不同的控件,app 多个控件分别有响应  这个问题处理方法也是很简单 就是在布局里面添加 android:splitMotionEvents="false"a ...

  8. Android中设置控件可见与不可见详解

    通常控件的可见与不可见分为三种情况. 第一种 gone 表示不可见并且不占用空间 第二种 visible 表示可见 第三种 invisible 表示不可见但是占用空间 可见与不可见的表现形式有两种. ...

  9. 文本类控件(EditView 的介绍)

    EditView的作用:用于在屏幕上显示文本输入框 Android的编辑框组件组件可以输入单行文本,多行文本,指定格式文本(密码,邮箱地址等) 2中使用方法 1 java代码中通过new关键字创建 2 ...

  10. 文本类控件 (TextView的介绍)

    TextView的作用:用于在屏幕上显示文本 Android中的文本框组件可以显示单行文本,多行文本,也可以显示带图像的文本 使用的2中方法 1 java代码中通过new关键字创建 2 XML布局中使 ...

最新文章

  1. cuda nvcc dll
  2. 小波变换教程(1):基本原理
  3. Struts2之Ognl
  4. c语言集合除去相同元素,使用C语言去掉字符串集合重复元素
  5. 图解C语言的希尔排序
  6. Linux 下的 hosts文件
  7. git切换用户密码_Git 最基本的命令
  8. 业务类型创业公司,最好不要招程序员
  9. PyTorch自定义CUDA算子教程与运行时间分析
  10. atitit 业务 触发器原理. 与事件原理 docx
  11. 内容创作者周刊:第4期
  12. html的reset按钮的作用简单介绍
  13. Jasper实现报表(Java)
  14. 基于Java毕业设计爱心公益网站设计与制作源码+系统+mysql+lw文档+部署软件
  15. Python爬虫入门实战2:获取CSDN个人博客文章基础信息
  16. RabbitMQ六种工作模式
  17. # [1007]魔法少女小Scarlet
  18. 一个洗车店引发的思考:给谁发优惠券好呢?
  19. alin的学习之路(数据库篇:二)(select查询,where条件查询,order by排序,单行函数,多行函数,group by分组)
  20. 学习记录:关于Uniapp与Java实现支付宝沙箱APP内支付

热门文章

  1. datax运行无法加载主类
  2. html5制作新年祝福,新年祝福视频制作教程
  3. 初中计算机卡片的制作教案,【我的拼音卡片教案】制作拼音卡片
  4. 计量经济学 联合假设检验 F统计量
  5. 计组cpi与mips的计算方法
  6. OPTEE:CA-TA会话的创建(二)
  7. 对InputStream,OutputStream,Reader,Writer的详解
  8. python图像纹理提取_图像处理7 LBP纹理特征提取
  9. SQL Server维护计划自动备份数据库
  10. 计算机键盘上fn键,键盘上的fn键有什么用?笔记本电脑键盘上的fn键作用大全