tips 

You’ll often encounter scenarios where you need to make a view, like a Text, Image, or even a Button, disappear from the screen. If you’re coming from UIKit, you might instinctively look for an isHidden property. However, SwiftUI, at least at the time of writing, doesn’t offer a direct equivalent in the same way. Instead, one of the primary methods to achieve this is by using the .opacity() modifier.

The .opacity() modifier allows you to control the transparency of a view. By setting its value to 0.0, you can make a view completely invisible, effectively hiding it from the user.

Here’s how you can hide a Text view using .opacity():

import SwiftUI

struct ContentView: View {
    var body: some View {
        Text("I am hidden!")
            .opacity(0.0) // This text will not be visible
    }
}

Similarly, you can hide a Button in the same way:

import SwiftUI

struct ContentView: View {
    var body: some View {
        Button("Tap Me") {
            // Perform action
        }
        .opacity(0.0) // This button will be invisible
    }
}

To dynamically control the visibility of your views, you can use a @State variable to manage the opacity:

import SwiftUI

struct ContentView: View {
    @State private var isHidden = true

    var body: some View {
        VStack {
            Text("Toggle My Visibility")
                .opacity(isHidden ? 0.0 : 1.0)

            Button("Toggle") {
                isHidden.toggle()
            }
        }
    }
}

In this example, the Text view’s visibility is controlled by the isHidden state variable. When isHidden is true, the opacity is 0.0 (invisible), and when it’s false, the opacity is 1.0 (fully visible). Tapping the “Toggle” button switches the value of isHidden, making the text appear and disappear.

It’s important to remember that while setting the .opacity() to 0.0 makes a view visually disappear, it still occupies its original space in the layout. If you need the view to not take up any space when “hidden,” you might consider using conditional views (with if statements) to conditionally include or exclude the view from your layout. However, for simple show/hide scenarios, especially when you might want to animate the transition, .opacity() is a clean and effective solution in SwiftUI.