switf垂直组合(VStack)

简介: switf垂直组合(VStack)

在Swift编程语言中,如果你想要在垂直方向上组合多个视图或者数组、集合等元素,可以利用UIKit框架中的UIStackView类或者SwiftUI框架中的相关布局命令。

在UIKit中的VStack实现:

import UIKit

// 创建两个UILabel实例
let label1 = UILabel()
label1.text = "Label 1"
label1.backgroundColor = .red

let label2 = UILabel()
label2.text = "Label 2"
label2.backgroundColor = .green

// 创建一个垂直方向的UIStackView
let stackView = UIStackView(arrangedSubviews: [label1, label2])
stackView.axis = .vertical // 设置轴线为垂直方向
stackView.distribution = .fill // 设置子视图填充方式
stackView.alignment = .center // 设置子视图居中对齐
stackView.spacing = 8 // 设置子视图之间的间距

// 将stackView添加到某个父视图中
view.addSubview(stackView)
stackView.translatesAutoresizingMaskIntoConstraints = false
NSLayoutConstraint.activate([
    stackView.topAnchor.constraint(equalTo: view.safeAreaLayoutGuide.topAnchor),
    stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor),
    stackView.trailingAnchor.constraint(equalTo: view.trailingAnchor),
    stackView.bottomAnchor.constraint(equalTo: view.safeAreaLayoutGuide.bottomAnchor)
])

在SwiftUI中的VStack实现:

import SwiftUI

struct ContentView: View {
   
    var body: some View {
   
        VStack(alignment: .center, spacing: 8) {
    // 创建垂直堆栈视图
            Text("Label 1")
                .background(Color.red)

            Text("Label 2")
                .background(Color.green)
        }
        .padding() // 添加内边距
        .frame(maxWidth: .infinity, maxHeight: .infinity) // 充满整个屏幕
    }
}

struct ContentView_Previews: PreviewProvider {
   
    static var previews: some View {
   
        ContentView()
    }
}

在SwiftUI中,VStack是一个视图构建器,用于在垂直方向上组织其子视图,你可以自定义其对齐方式、间距等属性。上述示例中,我们创建了一个包含两个文本视图的垂直堆栈,两者之间有8个点的间距,并且居中对齐。

目录
相关文章
|
7月前
|
存储 算法 前端开发
1637. 两点之间不包含任何点的最宽垂直区域
1637. 两点之间不包含任何点的最宽垂直区域
52 0
|
6月前
|
前端开发 UED
深入理解CSS中的文本对齐方式:水平对齐与垂直对齐
深入理解CSS中的文本对齐方式:水平对齐与垂直对齐
170 5
|
7月前
|
前端开发 容器
css 中可以让文字在垂直和水平方向上重叠的两个属性是什么?
css 中可以让文字在垂直和水平方向上重叠的两个属性是什么?
66 1
|
7月前
|
搜索推荐
如何将文章纵向排列转换为横向排列
如何将文章纵向排列转换为横向排列
56 0
LeetCode 1637. 两点之间不包含任何点的最宽垂直面积
给你 n 个二维平面上的点 points ,其中 points[i] = [xi, yi] ,请你返回两点之间内部不包含任何点的 最宽垂直面积 的宽度。
92 0
SwiftUI—使用VStack在垂直方向排列视图
SwiftUI—使用VStack在垂直方向排列视图
169 0
SwiftUI—使用VStack在垂直方向排列视图
SwiftUI—使用HStack在水平方向排列视图
SwiftUI—使用HStack在水平方向排列视图
646 0
SwiftUI—使用HStack在水平方向排列视图
20天刷题计划-77. 组合
本题这是回溯法的经典题目。直接的解法当然是使用for循环,思路简单但效率相对没有优势,可以使用回溯搜索法,具体步骤如下 定义成全局变量便不必再当作参数传入函数 剪枝,判断当前长度和数组剩余长度能否构成一个k个数的组合 for 循环里 i 从 start 到 n。 比如,n = 5,k = 4,temp.size( ) == 1,此时代表我们还需要(4 - 1 = 3)个数字, 如果 i = 4 的话,以后最多把 4 和 5 加入到 temp 中,而此时 temp.size() 才等于 1 + 2 = 3, 不够 4 个,所以 i 没必要等于 4,i 循环到 3 就足够了。
|
数据可视化
【约束布局】ConstraintLayout 引导线 Guideline 约束 ( 简介 | 可视化操作 | 属性 | 水平引导线 | 垂直引导线 | 开始结束尺寸 | 百分比位置 | 约束组件 )(二)
【约束布局】ConstraintLayout 引导线 Guideline 约束 ( 简介 | 可视化操作 | 属性 | 水平引导线 | 垂直引导线 | 开始结束尺寸 | 百分比位置 | 约束组件 )(二)
605 0
【约束布局】ConstraintLayout 引导线 Guideline 约束 ( 简介 | 可视化操作 | 属性 | 水平引导线 | 垂直引导线 | 开始结束尺寸 | 百分比位置 | 约束组件 )(二)