美文网首页
SwiftUI之Button点击

SwiftUI之Button点击

作者: 狂奔的胖蜗牛 | 来源:发表于2019-11-15 14:07 被阅读0次

    Button使用

    SwiftUI中,Button类似于UIKit中的UIButton,用法如下:

    Button(action: {
                //同UIKit,点击后会执行该闭包
            }) {
                Text("按钮")
            }
    

    运行结果:


    image.png

    设置背景色

    接下来,我们给Button设置背景色和大小

            Button(action: {
                //同UIKit
            }) {
                Text("按钮")
            }
                //大小
                .frame(width: 100, height: 40)
                //背景色
                .background(Color.yellow)
                //文字颜色
                .foregroundColor(.white)
    

    结果如下:


    image.png

    看起来很完美,达到了我们的需求。但是使用的时候会发现一个问题:只有点击文字才会触发action,点击黄色区域是不会触发的!

    解决问题

    产生这个问题的原因是,设置Button的大小背景色等,只是设置在了Button上面,而触发action是有内部的Text触发的,所以,我们不应该设置Button,而应该设置内部Text的大小和背景。

    代码如下:

    Button(action: {
                //同UIKit
            }) {
                Text("按钮")
                    //大小
                    .frame(width: 100, height: 40)
                    //背景色
                    .background(Color.yellow)
                    //文字颜色
                    .foregroundColor(.white)
            }
    

    好了,问题解决。

    以此类推

    所以,当给Button设置Image等的时候,也需要这样操作。

    Button(action: {}) {
                    HStack {
                        
                        Image(systemName: "rectangle.grid.1x2.fill")
                        Text("按钮2")
                    }
                    .padding()
                    .background(Color.yellow)
                }
    
    image.png

    相关文章

      网友评论

          本文标题:SwiftUI之Button点击

          本文链接:https://www.haomeiwen.com/subject/frtsictx.html