首页 > 解决方案 > 在不使用 AnyView 的情况下扩展具有额外功能的视图

问题描述

我正在这样做:

extension View {
    func isHidden(_ hidden: Bool) -> AnyView {
        AnyView(hidden ? self.hidden() : self)
    }
}

我更喜欢这样的东西:

extension View {
    func isHidden(_ hidden: Bool) -> some View {
        return hidden ? self.hidden() : self
    }
}

这可能吗和/或我是否不必要地担心?谢谢

标签: swiftviewswiftui

解决方案


对的,这是可能的。这里是

extension View {
    func isHidden(_ hidden: Bool) -> some View {
        Group {
            if hidden {
                self.hidden()
            }
            else {
                self
            }
        }
    }
}

推荐阅读