如果我通过选择另一个项目来更改值,我会尝试将一个项目传递到工作表。即使我从未使用第一项调用工作表,工作表仍会继续显示第一项。
这是一个错误还是我做错了什么?
锻炼列表.swift
import SwiftUI
struct WorkoutList: View {
private var workouts = workoutData
@State var showWorkoutDetails = false
var body: some View {
ScrollView(.horizontal, showsIndicators: false) {
HStack(spacing: 20) {
ForEach(workouts) { workoutCard in
GeometryReader { geometry in
Button(action: {self.showWorkoutDetails.toggle()}) {
WorkoutCardView(workout: workoutCard)
.rotation3DEffect(Angle(degrees: Double((geometry.frame(in: .global).minX - 30) / -30)), axis: (x: 0, y: 10, z: 0))
.sheet(isPresented: self.$showWorkoutDetails) {
WorkoutDetails(workout: workoutCard)
}
}
}
.frame(width:246, height: 360)
}
}
.padding(30)
}
}
}
private let workoutData = [ …Run Code Online (Sandbox Code Playgroud) onDrag使用SwiftUI进行拖放onDrop在 iOS 设备上效果非常好。然而,对于 macOS,我什至根本无法拖动视图。
对于 iOS 来说它可以工作,对于 macOS 则不行,这看起来很奇怪。该应用程序是使用 Catalyst 制作的,目标为 iOS 13.4。
即使对于一些基本的东西,它也适用于其中一个而不是另一个:
struct ContentView: View {
var body: some View {
Text("Hello World!")
.onDrag { NSItemProvider(object: "Hello 2" as NSString) }
}
}
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?这是一个错误吗?
我有一个Pickerwith.pickerStyle(SegmentedPickerStyle())使其成为分段控件。我想让页面在之间平滑滑动,而不是使用条件语句替换视图。
这是我迄今为止所做的 gif:
这是到目前为止的代码(由 控制if,而不是在不同页面之间切换):
struct AuthView: View {
@State private var authPath = 0
/* ... */
var body: some View {
VStack {
Picker(selection: $authPath, label: Text("Authentication Path")) {
Text("Log In").tag(0)
Text("Sign Up").tag(1)
}
.pickerStyle(SegmentedPickerStyle())
Spacer()
if authPath == 0 {
LogInView(/* ... */)
} else {
SignUpView(/* ... */)
}
Spacer()
}
.padding()
.background(Color("Color.Background").edgesIgnoringSafeArea(.all))
}
}
Run Code Online (Sandbox Code Playgroud)
我想要类似的东西UIPageViewController。如果有 SwiftUI 版本或好的替代方案,那确实会有帮助。
但是,如果我确实需要使用 UIKit UIViewRepresentable,我不知道如何使用 SwiftUI 来实现它。
accessibilityLabel(_:)我正在将辅助功能添加到我的 SwiftUI 应用程序中,直到我在将 an 添加到Buttona 中时遇到问题ToolbarItem。这是一些示例代码:
struct ContentView: View {
var body: some View {
NavigationView {
Text("Content")
.accessibilityElement()
.accessibilityLabel("Content label") // This is here just to show Voice Control is working
.navigationTitle("Test")
.toolbar {
// Comment parts out below, depending on what you want to test
ToolbarItem(placement: .navigationBarTrailing) {
// What I want, but doesn't work:
// (Also tried adding the label to either the button
// label or the whole button itself, neither …Run Code Online (Sandbox Code Playgroud) 给定一个带有 EditButton() 的列表视图,如果正在编辑该视图(用户点击“编辑”按钮),当用户离开该视图时,如何以编程方式禁用编辑模式?(例如,与 iPhone 上的“电话”应用程序中的“收藏夹”视图类似的行为)
struct ContentView2: View {
@State var fruits = ["Apple", "Banana"]
var body: some View {
NavigationView {
List {
ForEach(fruits, id: \.self) { fruit in
Text(fruit)
}
.onDelete { _ in
print("Delete")
}
}
.toolbar {
EditButton()
}
}
.onDisappear {
// make List's editMode be .inactive; how?
}
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,可以对给定的字符串进行一些处理,这在 2Task秒内完成。在此期间我正在显示动画。当这些Task完成后,我需要隐藏动画。下面的代码可以工作,但看起来不太好。我相信有更好的方法来做到这一点?
let firTask = Task {
/* Slow-running code */
}
let airportTask = Task {
/* Even more slow-running code */
}
Task {
_ = await firTask.result
_ = await airportTask.result
self.isVerifyingRoute = false
}
Run Code Online (Sandbox Code Playgroud) 我正在使用 SwiftUI 实现 Form 和 Picker。有一个问题,当我选择选取器选项时,它会自动导航回表单屏幕,如何使其保持在选择屏幕中?
代码:
struct ContentView: View {
@State private var selectedStrength = "Mild"
let strengths = ["Mild", "Medium", "Mature"]
var body: some View {
NavigationView {
Form {
Section {
Picker("Strength", selection: $selectedStrength) {
ForEach(strengths, id: \.self) {
Text($0)
}
}
}
}
.navigationTitle("Select your cheese")
}
}
}
Run Code Online (Sandbox Code Playgroud)
实际的:
预期:(来自 Iphone 设置的示例)
我希望构建一个 HStack,其中包含 3 个元素,一个在左侧,一个在中间,一个在右侧。中间元素应始终位于中心,但由于左侧和右侧元素是动态的,因此长度可能不同,因此中间元素会根据侧面元素的大小而被推动(见下图)。我正在使用垫片和填充物,但需要一些可以自动调整垫片尺寸的东西。有谁知道有什么方法可以做到这一点?
请参阅下面所附的代码:
VStack(alignment: .leading){
Text(item.itemName)
.padding(1)
.padding(.horizontal, 20)
HStack{
//Representative item code
Text("123454")
.padding(.horizontal, 20)
Spacer()
Text(item.itemQuantity)
//.position(x: 100)
Spacer()
Text(item.itemPrice)
.padding(.horizontal, 20)
}
}
Run Code Online (Sandbox Code Playgroud)
如果我想绘制一个简单的红色矩形,我应该使用 anSKShapeNode还是 an SKSpriteNode?性能(渲染速度)有何差异?
是否有任何例外(例如应用透明度,或者创建physicsBody)?
我知道两者的主要目的是什么,但我不确定哪个在绘制简单的红色正方形方面性能更好。
// Shape
let myShape = SKShapeNode(rectOf: CGSize(width: 100, height: 100))
myShape.fillColor = .red
myShape.strokeColor = .clear
// Sprite
let mySprite = SKSpriteNode(color: .red, size: CGSize(width: 100, height: 100))
Run Code Online (Sandbox Code Playgroud) 使用在 Mojave 中运行的 Xcode 10,我无法让简单的测试源编辑器扩展工作。我以前可以在 Xcode 9 High Sierra 下执行此操作。我创建了一个简单的源编辑器扩展。然后我运行它,但没有显示在首次亮相的 Xcode(黑色图标)编辑器菜单下。也不会显示在“系统”>“扩展”列表中。重新启动也没有帮助。我尝试从 Mac App Store 下载 LineX 扩展,但它也不起作用。
swift ×10
swiftui ×7
ios ×3
async-await ×1
forms ×1
mac-catalyst ×1
macos ×1
macos-mojave ×1
performance ×1
picker ×1
rendering ×1
sprite-kit ×1
task ×1
xcode ×1