Swift UI列表:点按单元格时打开外部URL

时间:2019-09-22 10:54:15

标签: ios swiftui swiftui-list

URL的一个单元格被点击时,我正在尝试打开List。我尝试将修饰符onTapGesture添加到单元格本身,然后调用UIApplication.shared.open(url),但这仅在水龙头位于单元格视图元素上(而不是单元格背景上)的情况下才有效。

我还尝试向不透明度为0.01的单元格添加背景视图(矩形),但是尽管这样做可以使Rectangle尽管不透明度很低,但还是很明显的。

是否有任何解决方法可以使整行都可轻敲?

2 个答案:

答案 0 :(得分:1)

@stakri,您要查找的是“ .contentShape()”

Rectangle()
    .stroke()
    .onTapGesture() {
        UIApplication.shared.open(URL(string: "https://stackoverflow.com")!)
    }

仅当您点击矩形的“笔触”轮廓时,以上代码才起作用,但是.contentShape()可以使整个区域都可以被点击,而无需将其嵌套在堆栈中:

Rectangle()
    .stroke()
    .contentShape( Rectangle() )
    .onTapGesture() {
        UIApplication.shared.open(URL(string: "https://stackoverflow.com")!)
    }

其他遇到此问题的人可能会在寻找如何专门打开URL,您会注意到我强行打开了URL。对此可以接受反馈,但是除非出现任何问题,否则效果很好。

答案 1 :(得分:0)

找到了一个解决方案,以防将来对任何人有帮助:

//编辑:

使用单个read_csv,在操作闭包中使用所需的操作(在我的情况下为Button),并在openURL闭包中返回我的自定义视图。