使用Swiftui弹出锁/解锁按钮是否存在更好的方法?

发布于 2025-01-21 09:11:39 字数 1101 浏览 3 评论 0原文

我试图实现锁定/解锁按钮,但很难制作。 就我而言,我使用了两个图像。一个是带有锁的矩形,另一个只是一个矩形。 然后使用ZSTACK将它们作为一个按钮。

// mincho

import SwiftUI                                                                  
struct ZStackView: View {
var clearInfoData : ClearInfo
var body: some View {
    ZStack{
        NavigationLink(destination: HonorDetailView(clearInfo: clearInfoData).toolbar{
            Button(action: {
        }, label: {
            Image(systemName: "square.and.arrow.up")
        })
        }) {
            Image(clearInfoData.clearImage)
                .resizable()
                .frame(width: 100, height: 100)
        }.zIndex(data) // when stage cleared, data will change 0 to 1. 
            Image("LockedRectangle")
    }
}

struct ZStackView_Previews: PreviewProvider {
static var previews: some View {
    ZStackView(clearInfoData: cleardata[0].clearInfo[1])
}

}

这样,image + avarigationLink->作为按钮。 因此,当舞台清除时,此按钮显示解锁图像和工作导航视图。 我想在单击时控制按钮的不透明度。

在我的猜测中,当我单击时,按钮的不透明度会降低。 但是我想要那个按钮保持不透明。

  1. 是否存在其他更好的方法来解锁/锁定按钮?
  2. 如果是最好的方法,我该怎么做才能使此按钮不透明?

I tried to implement lock/unlock button, but it was hard to make.
In my case, I used two Image. One is Rectangle with a lock, another is just a rectangle.
And using ZStack, made them as a one button.

// mincho

import SwiftUI                                                                  
struct ZStackView: View {
var clearInfoData : ClearInfo
var body: some View {
    ZStack{
        NavigationLink(destination: HonorDetailView(clearInfo: clearInfoData).toolbar{
            Button(action: {
        }, label: {
            Image(systemName: "square.and.arrow.up")
        })
        }) {
            Image(clearInfoData.clearImage)
                .resizable()
                .frame(width: 100, height: 100)
        }.zIndex(data) // when stage cleared, data will change 0 to 1. 
            Image("LockedRectangle")
    }
}

struct ZStackView_Previews: PreviewProvider {
static var previews: some View {
    ZStackView(clearInfoData: cleardata[0].clearInfo[1])
}

}

Like this, Image + NavigationLink -> as a Button.
So when stage cleared, this button show unlock image and working navigation view.
And I want to control button's opacity when it clicked.

In my guess, button's opacity going lower when i click.
However I want that button keep opaque.

  1. Is it exist other better way to make unlock/lock button?
  2. If it is best way, what should I do to make this button opaque?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文