小编Har*_*tel的帖子

SwiftUI 多个标签垂直对齐

有很多解决方案可以尝试使用 VStack 内的 HStack 在 SwiftUI 中对齐多个图像和文本。有什么办法可以实现多个标签吗?添加到列表中时,多个标签会自动垂直对齐。当它们嵌入到 VStack 中时,是否有一种简单的方法可以做到这一点?

在此输入图像描述

struct ContentView: View {
    var body: some View {
//        List{
        VStack(alignment: .leading){
            Label("People", systemImage: "person.3")
            Label("Star", systemImage: "star")
            Label("This is a plane", systemImage: "airplane")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

swiftui

11
推荐指数
1
解决办法
2811
查看次数

如何将按钮放置在屏幕底部?斯威夫特用户界面

下面是我在 SwiftUI 中创建视图的代码。我想将“欢迎”按钮放置在屏幕底部,如下所示。

struct welcomeViewControllerView: View {
      var body: some View {
            Text("Welcome")
              .font(.system(size: 20, design: .rounded))
              .padding(.leading)
              .multilineTextAlignment(.center)
              .background(

            Image("splashBackground")
              .resizable()
              .edgesIgnoringSafeArea(.all)
              .frame(width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height))
        
            Button(action:{print("button pressed")})
              {
                Text("Continue")
                .font(.system(size: 20, design: .rounded))
                .foregroundColor(.black)
                .frame(width: 300, height: 50, alignment: .center)
               .background((Image("buttonImage")).resizable().frame(width: 300, height: 50, alignment: .center))      
         }
      }
   }

class welcomeViewController: UIHostingController<welcomeViewControllerView> {
        required init?(coder: NSCoder)
         {
             super.init(coder: coder,rootView: welcomeViewControllerView());
          }
    
          override func viewDidLoad()
         {
           super.viewDidLoad()
            view.backgroundColor = .white
         }
}
Run Code Online (Sandbox Code Playgroud)

如何将按钮放置在屏幕底部?我发布了下面的屏幕。我对使用 SwiftUI 还很陌生。

在此输入图像描述

swift swiftui

11
推荐指数
2
解决办法
3万
查看次数

SwiftUI - 根据条件添加导航栏按钮

鉴于我有这样的看法..

@State var tabIndex: Int = 0
           
 var body: some View {

  TabView(selection: $tabIndex)
  {
   Text("Tab 1").tabItem({
    Image(systemName: "message")
   }).tag(0)           
                
   Text("Tab 2").tabItem({
    Image(systemName: "arkit")
   }).tag(1)             
          
   Text("Tab 3").tabItem({
    Image(systemName: "battery.100")
   }).tag(2)
  }.navigationBarTitle("Tabbed View")
            
 }
Run Code Online (Sandbox Code Playgroud)

这会产生一个这样的视图,这是预期的:

在此处输入图片说明

在我可以使用的栏中添加导航按钮

 .navigationBarItems(trailing:
  Button(action: {print("Button was tapped")}) {
   Image(systemName: "plus")
    .resizable().frame(width: 20, height: 20)
  })
Run Code Online (Sandbox Code Playgroud)

预期添加按钮

有没有办法只根据条件添加(或显示)按钮?

if (self.tabIndex == 1){
  show button
}
else {
 don't show button
}
Run Code Online (Sandbox Code Playgroud)

conditional-statements ios swiftui

10
推荐指数
3
解决办法
3075
查看次数

在 SwiftUI 中重新创建 twitter 复制到剪贴板的动画

在 Twitter 应用程序中,当您点击共享按钮,然后点击复制链接按钮时,显示“已复制到剪贴板”的视图将从顶部移入屏幕。它在屏幕顶部停留约 1 秒钟,然后移回到屏幕上并消失。像这样:

在此输入图像描述

我的目标是每当我双击文本视图时在我的 SwiftUI 应用程序中创建相同的效果。但我就是不知道如何实现这种效果。这是我能得到的最好的:

import SwiftUI

struct ContentView: View {
    @State private var copied = false
    var body: some View {
        GeometryReader { gr in
            ZStack {
                if copied {
                    Text("Copied to clipboard")
                        .padding()
                        .background(Color.blue.cornerRadius(20))
                        .position(x: gr.frame(in: .local).midX)
                        .transition(.move(edge: .top))
                        .animation(Animation.easeInOut(duration: 2).repeatCount(2))
                }
                
                VStack {
                    Text("Copy")
                        .onTapGesture(count: 2) {
                            self.copied.toggle()
                        }
                }
            }
            .frame(maxWidth: .infinity, maxHeight: .infinity)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui

4
推荐指数
1
解决办法
1176
查看次数

LazyVGrid 中最后一行居中

在 a 中LazyVGrid,我显示来自服务器的数据(这里我使用字母表作为示例),我的目标是在中心显示最后一行,而不是leading最后一行包含的项目少于 3 个。可行吗?

目前,它看起来像这样:

在此输入图像描述

struct ContentView: View {
   let alphabet = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"]
    let preference = [
            GridItem(.flexible()),
            GridItem(.flexible()),
            GridItem(.flexible())
        ]
    var body: some View {
    ScrollView {
        LazyVGrid(columns: preference) {
        ForEach(alphabet, id: \.self) { value in
            ZStack {
                Rectangle()
                    .frame(width: 120, height: 120)
                    .foregroundColor(Color(UIColor.systemIndigo))
                    .cornerRadius(16)
                Text(value.description)
                    .foregroundColor(.white)
                    .font(.title)
                    } …
Run Code Online (Sandbox Code Playgroud)

swiftui lazyvgrid

4
推荐指数
1
解决办法
1915
查看次数

如何使用 SwiftUI 删除按钮的高亮显示?

我有这个简单应用程序的按钮和标签。当我点击按钮时,它会突出显示我的按钮(您可以在附图中看到),那么我该如何禁用它?我错过了什么?

代码:

struct ContentView: View {
    @State private var displayLabel = 0
    var body: some View {
        GeometryReader{ geo in
            ZStack{
                Button(action: {
                    displayLabel += 1
                }, label: {
                    Rectangle()
                        .foregroundColor(.blue)
                        .frame(width: geo.size.width, height: geo.size.height)
                }).buttonStyle(PlainButtonStyle())
                
                Text("\(displayLabel)")
                    .font(Font.system(size:75, design: .rounded))
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

swiftui

3
推荐指数
1
解决办法
180
查看次数

在 Swift 中,我什么时候会使用“while let”?

我正在观看一个教程,其中作者在循环时使用了while let 。为什么?我在 上没有找到任何内容while let,所以有人可以向我解释一下吗?

while let node = currentNode {
    print(node.value, terminator: "->")
    currentNode = node.next
} 
Run Code Online (Sandbox Code Playgroud)

ios swift

2
推荐指数
1
解决办法
2419
查看次数

标签 统计

swiftui ×6

ios ×3

swift ×3

conditional-statements ×1

lazyvgrid ×1