1

我正在尝试在轻按URL其中一个单元格时打开 a 。List我尝试将修饰符添加onTapGesture到单元格本身,然后调用UIApplication.shared.open(url),但这仅在点击正确在单元格视图的元素上(而不是在单元格的背景上)时才有效。

我还尝试将背景视图(矩形)添加到不透明度为 0.01 的单元格中,但尽管这可行,但尽管不透明度很低,但矩形仍然非常明显。

是否有任何解决方法可以使整行可点击?

4

2 回答 2

1

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

// 编辑:

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

于 2019-09-22T11:03:45.470 回答
0

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

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

上面的代码只有在你点击矩形的'stroke'轮廓时才会起作用,但是 .contentShape() 将使整个区域都可以点击,而无需将其嵌套在 Stack 中:

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

其他人来这个问题可能会寻找如何专门打开一个 URL,你会注意到我强制解开我的 URL。对此开放反馈,但除非提出任何问题,否则效果很好。

于 2019-12-28T08:04:06.030 回答