Skip to content

样式

形状

swift
Color.red // 色块
Rectangle() // 矩形
Circle() // 圆形
Ellipse() // 椭圆
Capsule() // 胶囊体
RoundedRectangle(cornerRadius: 20) // 指定圆角矩形
UnevenRoundedRectangle(cornerRadii: RectangleCornerRadii(topLeading: 20)) // 左上角圆角矩形
样式说明
.fill(.green)填充色
.strokeBorder(.blue, lineWidth: 20)边框色
.strokeBorder(.orange,style: StrokeStyle(lineWidth: 20))边框色
.trim(from: 0.1, to: 0.9)裁切
.size(CGSize(width: 10, height: 10))设置大小
.scale(2)缩放大小
.rotation(.degrees(30))旋转
.offset(CGSize(width: 30.0, height: 10.0))偏移

渐变

线性渐变

swift
LinearGradient(colors: [.red, .blue], startPoint: UnitPoint(x: 0, y: 0), endPoint: UnitPoint(x: 1, y: 1))

径向渐变

swift
RadialGradient(colors: [.red, .green], center: UnitPoint(x: 0.5, y: 0.5), startRadius: 0, endRadius: 200)

椭圆渐变

swift
EllipticalGradient(colors: [Color.blue, Color.green])

角度渐变

swift
AngularGradient(colors: [.red,.yellow], center: UnitPoint(x: 0.5, y: 0.5))

矩形填充渐变

swift
Rectangle()
    .fill(EllipticalGradient(colors: [Color.blue, Color.green]))

Padding 边距

样式

样式说明
.padding(.trailing)右侧
.padding(.leading)左侧
.padding(.top)
.padding(.bottom)
.padding(.horizontal)水平的(左右)
.padding(.vertical)垂直的(上下)
.padding(.all)四周

例子

上面和左侧的边距

swift
Text("Hello, World!")
    .padding([.top, .leading], 30)
    .background(.red)

Frame 宽高

可以设置元素的宽高,alignment 参数可以设置对齐方式,可以设置上下左右和对角的位置

除了宽高,还有最小宽度、理想宽度、最大宽度

swift
.frame(minWidth: 10,idealWidth: 100, maxWidth: .infinity)

overlay 前景色

overlay 可设置前景色

swift
Image(systemName: "heart")
    .font(.largeTitle)
    .padding()
    .foregroundColor(.white)
    .bold()
    // 设置背景
    .background() {
        Circle()
            .fill(.pink)
    }
    .shadow(radius: 5)
    // 设置前景
    .overlay(alignment: .bottomTrailing){
        Circle()
            .fill(.green)
            .frame(width: 25,height: 25)
    }
    // 设置前景
    .overlay(alignment: .bottomTrailing) {
        Text("\(num)")
            .foregroundStyle(.white)
            .frame(width: 25,height: 25)
    }