- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在定制 Picker
在 SegmentedPickerStyle()
.我想有相同的行为,但是当我点击内容和其中一个可能选择的边框之间的区域时,onTapGesture
不起作用。当我添加蓝色背景时,它确实有效,但背景清晰时则无效。
使用蓝色背景
无法在清晰的背景下工作
不工作的代码:
import SwiftUI
struct PickerElementView<Content>: View where Content : View {
@Binding var selectedElement: Int
let content: () -> Content
@inlinable init(_ selectedElement: Binding<Int>, @ViewBuilder content: @escaping () -> Content) {
self._selectedElement = selectedElement
self.content = content
}
var body: some View {
GeometryReader { proxy in
self.content()
.fixedSize(horizontal: true, vertical: true)
.frame(minWidth: proxy.size.width, minHeight: proxy.size.height)
// ##################################################################
// CHANGE COLOR HERE TO BLUE TO MAKE IT WORK
// ##################################################################
.background(Color.clear)
// ##################################################################
.border(Color.yellow, width: 5)
}
}
}
struct PickerView: View {
@Environment (\.colorScheme) var colorScheme: ColorScheme
var elements: [(id: Int, view: AnyView)]
@Binding var selectedElement: Int
@State var internalSelectedElement: Int = 0
private var width: CGFloat = 220
private var height: CGFloat = 100
private var cornerRadius: CGFloat = 20
private var factor: CGFloat = 0.95
private var color = Color(UIColor.systemGray)
private var selectedColor = Color(UIColor.systemGray2)
init(_ selectedElement: Binding<Int>) {
self._selectedElement = selectedElement
self.elements = [
(id: 0, view: AnyView(PickerElementView(selectedElement) {
Text("9").font(.system(.title))
})),
(id: 1, view: AnyView(PickerElementView(selectedElement) {
Text("5").font(.system(.title))
})),
]
self.internalSelectedElement = selectedElement.wrappedValue
}
func calcXPosition() -> CGFloat {
var pos = CGFloat(-self.width * self.factor / 4)
pos += CGFloat(self.internalSelectedElement) * self.width * self.factor / 2
return pos
}
var body: some View {
ZStack {
Rectangle()
.foregroundColor(self.selectedColor)
.cornerRadius(self.cornerRadius * self.factor)
.frame(width: self.width * self.factor / CGFloat(self.elements.count), height: self.height - self.width * (1 - self.factor))
.offset(x: calcXPosition())
.animation(.easeInOut(duration: 0.2))
HStack {
ForEach(self.elements, id: \.id) { item in
item.view
.gesture(TapGesture().onEnded { _ in
print(item.id)
self.selectedElement = item.id
withAnimation {
self.internalSelectedElement = item.id
}
})
}
}
}
.frame(width: self.width, height: self.height)
.background(self.color)
.cornerRadius(self.cornerRadius)
.padding()
}
}
struct PickerView_Previews: PreviewProvider {
static var previews: some View {
PickerView(.constant(1))
}
}
最佳答案
一行答案不是设置backgroundColor,请设置contentShape
用于 HitTest 。
var body: some View {
GeometryReader { proxy in
self.content()
.fixedSize(horizontal: true, vertical: true)
.frame(minWidth: proxy.size.width, minHeight: proxy.size.height)
// ##################################################################
// CHANGE COLOR HERE TO BLUE TO MAKE IT WORK
// ##################################################################
.contentShape(Rectangle())
// ##################################################################
.border(Color.yellow, width: 5)
}
}
关于Color.clear 背景上的 SwiftUI onTapGesture 与 Color.blue 的行为不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58696455/
当我们试图在 ListView (那里有很多项目)中拉到顶部(或末尾)时,我真的很想改变蓝色光芒(蓝色高亮)的颜色。 因此,伙计们,我想把这个颜色从蓝色改为橙色。 http://img835.imag
$('#toggle-linecolor').click(function () { chart.yAxis[0].update({ lineColor: li
给定两个简单的图形: library(igraph) g 111223345611 canonical 2(blue) vs 1(blue)->2(red),我们在Stack Overflow上找到
为什么在 java.awt.Color 类中定义了两个 Color 常量?例如 public static final Color blue; public static final Color BL
这个问题在这里已经有了答案: Can I use the id of an HTML element as a variable in JavaScript? [duplicate] (3 个答案)
我在大学作业中使用了 Flutter Blue,我需要创建一个应用程序来获取信息并将其传递给设备。像在任何应用程序中一样,此数据的传递必须是自动的(毕竟最终用户不应该寻找执行该过程所需的服务和特征)。
我正在对 Bitbucket Server 使用 Blue Ocean。我想要一个新的构建发生: 创建或更新拉取请求时 当 master 更新时(基本上,当 PR 合并到 master 时) 看来我可
我正在尝试使用 Microsoft 命名空间,我需要启用 Outlook 的“投票”选项,我正在 VBO - EmailPOP3/SMTP 上执行此操作。 当我引用命名空间 Microsoft.Off
我有一个蓝色的家伙(蓝色 Angular 色),我想在他周围的半圆中添加一些元素。 每个元素都是图像的容器和应该位于图像下方的文本范围。 我已经尝试过这个,但正如你看到的元素以这种方式旋转并且每个跨度
我试图更改.active状态的默认颜色。尝试更改.ui-btn-active。没用有任何想法吗??这是link 最佳答案 尝试使用!important子句将其添加为最后一条规则: .ui-btn-ac
我的 TCPListener 配置如下: this.tcpListener = new TcpListener(IPAddress.Any, config.portNum); 然后我(使用线程)设置一
我一直在尝试制作一个游戏,其中有一个显示红色或蓝色的大方 block ,用户必须相应地单击“v”或“b”。我最终以一种不令人满意和不专业的方式完成了这一部分(如果你能指导我找到更好的方法,那就太好了)
我必须从文件“main.csv”中读取并打印如下输出: Set 4,1095,Set 1 or 4 Set 2,18277,Set 2 or 3 Set 1 or 4,Set 4,944 Set 2,
我想知道是否可以更改选择器列表的默认蓝色。 这是一张说明我在说什么的图片: 在突出显示 S 的地方,是否可以将背景颜色(仅限所选尺码的颜色)更改为其他颜色?我尝试使用 select:active {
计划 public class Project_X { public static void main(String[] args){ byte x; int a=270
我只想通过 BLE 连接两部安卓手机。是否可以?因为根据我对使用 Android API 的理解,我只能连接支持 BLE 的设备,如智能 watch 耳机等。如果我运行 startLescan() 方
我现在一直在使用 flutter Blue,但我坚持以下几点:我正在使用在 https://github.com/pauldemarco/flutter_blue 上下载的示例应用程序,通过这里的基本
最近我安装了 Blue Ocean 插件,但是我不知道如何使用插件的 UI 来编辑或创建管道。 当我在 Blue Ocean 中创建新管道并与 GitLab 存储库连接时,我无法选择创建/编辑管道(J
我正在尝试使用 Blue Ocean 创建 Jenkins 管道,但是当我尝试使用 GitHub 生成的访问 token 连接到我的 GitHub 时,没有任何反应。但是,当我检查控制台时,我收到此错
我正在做一个涉及 Beaglebone blue 的个人项目。我想从任何地方远程访问它。我不确定这样做的最佳方法是什么。我知道我可以只转发一个相应的端口(不安全)或类似的东西,但我想避免太多的安全漏洞
我是一名优秀的程序员,十分优秀!