SwiftUI常用基础高频语句概览

前面学习Swift以及SwiftUI,忘了记录,现在补上,配置:Win10 挂载MacOS10.15.3系统的虚拟机,编译工具:Xcode11.4(PS:虚拟机是真的卡,每运行一次3min。。。)

常用网站

AppIcon https://appicon.co/#app-icon

UI教程 https://www.bilibili.com/video/BV1X7411R73g

github项目 https://github.com/dkhamsing/open-source-ios-apps

swift代码练习 https://repl.it/student/classrooms/134164

时序曲线 https://cubic-bezier.com/#.17,.67,.83,.67

快捷键

command+I 设置缩进

选中的代码 + command+[ :向左位移

选中的代码 + command+]: 向右位移

选中的代码 + command+option+[ :向上位移

选中的代码 + command+option+]:向下位移

文字及图标设置

/*针对于Text的语法*/

.font(.title)  //设置字体类型

.fontWeight(.semibold)  //设置字体粗细

.foregroundColor(Color.red)  //设置字体前景颜色

.mutilineTextAlignment(.leading/.center) //设置多行对齐

.linespacing(4) //设置行距  

Text("\bottom(State.Height)").offset(y:-300)  //即时获取位置信息

Image(systemName: "gear")  //系统图标及字体可直接调用

.font(.system(size: 20,weight: .bold, design: .rounded))  //设置字体

.overlay   //叠加层

排版优化

/*针对于Image/VStack/HStack/ZStack的语法*/

Spacer()	//在几个模块间加入空间

.frame(width: 340.0, height: 220.0,alignment: .top )	//设置外框,保证内容在外框里面

.resizable( )	//保证图像适应外框,但会使高宽比失调

.aspectRatio(contentMode: .fill/.fit)	//在适应外框的基础上,图像不变形

.background(Color.blue) //设置背景色

.cornerRadius(20)	//设置圆角及其半径

.shadow(radius: 20)	//添加阴影及其半径(必须先添加圆角,再添加阴影)

.shadow(color:Color.black.opacity(0.2),radius:20,x:0,y:20)	//自定义阴影

.padding()	//设置模块距离边框内边距的长度(可以单独添加给水平或垂直
eg.
    .padding(.horizontal, 20)/.padding(.top,20)

.offset(x: 0,y:  -20)	//设置模块偏移量

.scaleEffect(0.7)	//设置模块缩放

.rotationEffect(Angle.degree(5))	//设置旋转角度

.rotation3DEffect(Angle.degree(5),axis:(x: 10.0,y:0,z:0)	//设置3D旋转角度

.blenderMode(.hardlight)	//设置混合模式

Rectangle( )   //矩形视图

.opacity(0.1)	//设置透明度

.frame(maxWidth: .infinity)	//将框架设置为最大宽度

.blur( radius: 20)	//设置模糊程度

.clipShape(roundRrctangle(cornerRadius: 20,style:continuous))	//设置平滑角

.clipShape(Circle())	//裁剪成圆角

.background(LinearGradient(gradient:Gradient(colors[Color.red,Color.blue]),startpoint:.leading,endpoint: .trailing))	//设置渐变色

Color Literal	//自由选择颜色

动画

普通动画

@State var show  =  false   //设置状态(动画间切换)

.onTapGesture{            //手势判断

self.show.toggle()

}

.rotationEffect(Angle.degrees(show ? 0: 5)	//三元运算符判断

.offset(x:0, y:show? -200:-20)	//三元运算符判断

.animation(.linenear)	//线性动画

.animation(.easeInOut)	//平滑开始,平滑结束

.animation(.easeInOut,duration(:0.3))	//平滑开始,平滑结束

.animation(.default)   

@State var showCard  = false

.animation(.timingCurve(0.2, 0.8, 0.2, 1 ,duration: 0.8))  //时序曲线

.animation(		//细节修饰
	Animation
    .default
	.delay(0.1)
	.speed(2)	//二倍速

)

手势

@State var viewState = CGSize.zero

.offset(x: viewState.width, y:viewState.height)  //使得即时返回`

.gesture(   // 拖拽手势`

DragGesture().onChange{  value in` 

self.viewState = value.translation`

}  

.onEnded {    //使得拖拽后图片返回原位置`

	self.viewState = .zero
    
})

.animation (.spring( ))	//弹性舒缓

/*
response: 0.3	设置响应速度,数值越小,响应越快

dampingFraction: 0.3	数字越小,弹性系数越大

blendDuration: 0	设置参数设置滞后时间	
*/

页面属性

Color(.grey)       

.edgesIgnoringSafeArea(.all)	//设置页面安全区域

@State var showProfile  =  false    

Button(action:{self.showProfile.toggle( ) }){

Image("Avatar")

	.renderingMode(.orginal)  //显示图片原始样式

	.resizable( )

	.frame( )

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

血月无华AUV

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值