- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图在选择按钮时更改按钮的颜色。当我按下按钮时没有任何变化。似乎 .onTapGesture 不适用于自定义 View 。
我尝试使用按钮而不是 .onTapGesture,但它也不起作用。 .contentShape 不起作用。我也尝试过使用列表,效果很好。但我认为还有更好的方法。
import SwiftUI
struct UserSettings: View {
@State private var selectedIndex: Int = 0
var body: some View {
VStack {
HStack(spacing: 0) {
ForEach(0..<3) { subIndex in
let pat = customPatterns1[subIndex]
PatternOptionView(pat: pat, isSelected: subIndex == selectedIndex)
.contentShape(Rectangle())
.onTapGesture(perform: {
selectedIndex = subIndex
})
}
}
}
}
}
struct UserSettings_Previews: PreviewProvider {
static var previews: some View {
UserSettings()
}
}
我的自定义 View :
import SwiftUI
struct PatternOptionView: View {
var pat: PatternView
var isSelected: Bool
var body: some View {
Button(action: {
Settings.shared.pattern = pat.pattern
}) {
VStack{
Rectangle()
.fill(isSelected ? Color("Primary") : .white)
.frame(width: UIScreen.main.bounds.width / 3, height: UIScreen.main.bounds.width / 3)
.cornerRadius(15)
.contentShape(Rectangle())
.overlay(
Image(systemName: pat.image)
.font(.system(size: 28))
.foregroundColor(isSelected ? .white : Color("Primary"))
)
Text(pat.text)
.foregroundColor(.secondary)
.lineLimit(1)
}
//.padding()
}.contentShape(Rectangle())
}
}
struct PatternOptionView_Previews: PreviewProvider {
static var previews: some View {
PatternOptionView(pat: customPatterns1[0], isSelected: true)
}
}
最佳答案
就我而言,我可以通过设置 contentShape
来使其工作:
PatternOptionView(pat: pat, isSelected: subIndex == selectedIndex)
.contentShape(Rectangle())
.onTapGesture(perform: {
selectedIndex = subIndex
})
关于swiftui - onTapGesture 不适用于自定义 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71379450/
我按照 MengTo 的示例说明了如何在 SwiftUI 中播放 Lottie 动画。 ( https://www.youtube.com/watch?v=fVehE3Jf7K0 ) 但是,我想知道是
我尝试重新实现我正在使用的 SegmentedControlers,因为它们在 Xcode 11 beta 5 中已被弃用。这花了一段时间但我得到了我想要的外观。但是,当我用 onTapGesture
在 SwiftUI View 中,我通过创建一个 VStack 来实现一个垂直滚动列表,该 VStack 包含一个包含一些文本的 NavigationView。我通过循环遍历popularFeedTy
有一些渲染图像,需要确定相对于图像的点击位置。看似简单,却找不到答案 var body: some View { VStack { Image(uiImage: drawRec
我试图在选择按钮时更改按钮的颜色。当我按下按钮时没有任何变化。似乎 .onTapGesture 不适用于自定义 View 。 我尝试使用按钮而不是 .onTapGesture,但它也不起作用。 .co
附件是一个简单的 SwiftUI 结构,它显示了一组“扩展按钮”。我显示顶部按钮(其他 3 个是 1x1,在顶部按钮后面。)当用户点击顶部按钮时,它会扩展到 40x40 并以漂亮的动画移动下面的按钮。
我正在通过代码制作动态 UIViews 并尝试在它们上面添加 UITapGestureRecogniser。但出于某种原因,他们没有回应。这是代码: -(void)createRandomBlock{
SWiftUI 中的 onTapGesture 不能可靠地工作。此示例显示了问题,即有时当您点击一个单元格时,背景会按原样变为灰色,而另一次相邻单元格发生变化,而其他时候根本没有任何 react 。任
这个问题在这里已经有了答案: SwiftUI: How to make entire shape recognize gestures when stroked? (1 个回答) 12 个月前关闭。
我偶然发现了一个与 SwiftUI 的 ScrollView 相关的事件冒泡问题。并且已经能够将其简化为一小段代码。请看下面: struct ContentView: View { var bod
我想根据来自另一个 View (LeftView) 中点击手势的操作来更新 View (RightView)。下面是我实现此目的的示例代码: AppState.swift import Foundat
我目前有一个 UIView,称之为 (A),已外包给第三方库。物理上按下 onTapGesture 很简单,但这里的问题是这个 (A) 在另一个 View 层次结构上,而不是我的 View 层次结构。
我正在开发具有以下 ContentView 结构的应用程序 ContentView { ---HeaderView ---Collection view using QGrid
我们可以使用 map 和 reduce 函数创建组合 TextView (不是逐行)。 struct ContentView: View { @State private var boolArr =
我有简单的看法。 var body: some View { NavigationView { ZStack { ScrollView {
当我从垂直 ScrollView (ForEach)滚动项目并点击水平 View 中的项目时,我在 VStack 中有一个水平 ScrollView (ForEach)和垂直 ScrollView (
我正在定制 Picker在 SegmentedPickerStyle() .我想有相同的行为,但是当我点击内容和其中一个可能选择的边框之间的区域时,onTapGesture不起作用。当我添加蓝色背景时
我有一个小 View ,我想在屏幕上移动并可点击。所以我添加了一个 UIPanGestureRecognizer 来移动它,并添加了一个 UITapGestureRecognizer 来接收点击事件,
我在我的应用程序中有一个显示矩形卡片列表的布局 - 每个卡片都应该可以点击(一次)以显示一组操作按钮和更多信息等。 我已经使用 .onTapGesture() 实现了这个我也放了.contentSha
我是一名优秀的程序员,十分优秀!