在 Powerapps 中,我有一个按钮,里面有一些文本。我想添加一个文本标签(这样字体会更小)。如何在按钮上添加文本标签并使其可见,但用户仍然可以单击该按钮。我担心用户会点击文本标签,这会阻挡按钮。这可能吗?谢谢!
Brandon Erbschloe
Asked:
2024-10-07 23:20:13 +0800 CST
LazyHStack
当嵌入到 中时,会出现跳跃内容布局问题ScrollView
。当子组件嵌入Button
到 中时,显示时会出现奇怪的视图“跳跃”行为。这在子组件的首次显示和重新显示时都会发生。以下代码将在中VStack
重现该问题。这在 Xcode 预览中无法重现。缓慢滚动会使问题更频繁地发生。iOS 18
iPhone 16 Pro Simulator
import SwiftUI
struct ContentView: View {
let elements = (0..<50).map(\.description)
var body: some View {
ScrollView(.horizontal) {
LazyHStack {
ForEach(elements, id: \.self) { element in
VStack {
Button(action: {}) {
Text("\(element)")
.foregroundStyle(Color.white)
.frame(width: 120, height: 80)
.background(Color.blue)
.cornerRadius(12)
}
}
}.padding()
}
}
}
}
可以通过移除VStack
、移除Button
、使用 HStack 而不是 LazyHStack 或向.id(element)
中添加 来修复此问题Button
。这些修复不是我想要的,我希望更深入地了解这里发生的事情。
显而易见的解决方法是删除VStack
,但我想向 VStack 添加其他内容。上面的演示代码只是表明 VStack 不需要其他子元素即可重现此问题。此外,我们需要使用 LazyHStack,因为元素列表可能会很长。也希望留在 SwiftUI 领域,而不是通过 UICollectionView 实现。
注意:使用单行的 LazyHGrid 不能解决此问题。
Douglas W. Palme
Asked:
2024-08-24 04:23:59 +0800 CST
我不确定如何让图像保持合理的大小,作为 SwiftUI 的新手,我毫不怀疑这完全是我的错。
代码如下:
import SwiftUI
struct AnimalsView: View {
var body: some View {
NavigationStack {
ZStack {
VStack(spacing: 20) {
HStack {
Text("Hello")
}
HStack {
NavigationLink(destination: ManagementView()) {
ZStack {
Image("Button-Normal")
.resizable()
.frame(width: 150, height: 50)
Text("Breeding")
.font(.title3)
.foregroundColor(.black)
.fontWeight(.medium)
}
}
NavigationLink(destination: AnimalsView()) {
ZStack {
Image("Button-Normal")
.resizable()
.padding()
Text("Animals")
.font(.title3)
.foregroundColor(.black)
.fontWeight(.medium)
}
}
}
HStack {
}
HStack {
}
}
.toolbar {
Button("Logout") {
Task {
let Signout = SignOutLocally()
await Signout.signOutLocally()
}
}
}
}
.background {
Image("Rancher1")
.resizable()
.scaledToFill()
.ignoresSafeArea()
}
}
}
}
#Preview {
AnimalsView()
}
第一个按钮有一个定义了高度和宽度的框架,但我知道苹果强烈建议不要这样做。
我知道有些开发人员更喜欢使用 NavigationLink 作为按钮本身,我也尝试过,但它总是无法正常工作。任何帮助都将不胜感激。
Duck
Asked:
2024-01-10 02:46:03 +0800 CST
我创建了一个按钮样式来自定义按钮。像这样的东西:
struct BlueButtonStyle: ButtonStyle {
func makeBody(configuration: Configuration) -> some View {
configuration.label
.padding()
.background(Color(red: 0, green: 0, blue: 0.5))
.foregroundStyle(.white)
.clipShape(Capsule())
}
}
要使用它,我必须像这样调用它并且它工作正常。
.buttonStyle(BlueButtonStyle(... my parameters))
注意:在我的例子中,我将参数传递给它。
但相反,我想这样称呼它
.blueButtonStyle(... my parameters)
如果那是常规视图修改器,我会这样做:
extension View {
func blueButtonStyle(... my parameters) -> some View {
self.modifier(BlueButtonStyle(... my parameters)
}
这编译得很好,但是当我尝试使用
.blueButtonStyle(... my parameters)
我明白了
Value of type 'Button<some View>' has no member 'blueButtonStyle'
怎么了?