我想让用户能够共享位置,但我不知道如何UIActivityViewController在 SwiftUI 中显示。
由于 swiftUI 上的文档不是很好,但我想问一下如何将“图像”转换为“UIImage”或如何将“图像”转换为 pngData/jpgData
let image = Image(systemName: "circle.fill")
let UIImage = image as UIImage
Run Code Online (Sandbox Code Playgroud) Ím 每次单击 NavLink 时都会尝试刷新此列表
NavigationView {
List(feed.items.indices, id:\.self) { i in
NavigationLink(destination: ListFeedItemDetail(idx: i).environmentObject(self.feed)) {
ListFeedItem(item: self.$feed.items[i])
}
}
}
Run Code Online (Sandbox Code Playgroud)
该列表由环境对象内的数组组成。问题:只有当我切换到另一个选项卡或关闭我之前使用过模态视图的应用程序时它才会刷新,并且它在那里工作。(我是用 .onAppear 做到的)有什么想法吗?
例子
问题:当您点击列表中的一个项目并点击切换按钮时,EnvironmentObject 已更改,但仅当我更改选项卡并再次将其更改回来时才会反映此更改
import SwiftUI
import Combine
struct TestView: View {
@State var showSheet: Bool = false
@EnvironmentObject var feed: TestObject
func addObjects() {
var strings = ["one","two","three","four","five","six"]
for s in strings {
var testItem = TestItem(text: s)
self.feed.items.append(testItem)
}
}
var body: some View {
TabView {
NavigationView {
List(feed.items.indices, id:\.self) { i in
NavigationLink(destination: …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 and/or 组合该类型的多个谓词。以前使用 CoreData 和 NSPredicate 我只会这样做:
let predicate = NSPredicate(value: true)
let predicate2 = NSPredicate(value: false)
let combinedPred = NSCompoundPredicate(type: .or, subpredicates: [predicate, predicate2])
Run Code Online (Sandbox Code Playgroud)
是否有类似的方法可以使用 SwiftData 和 #Predicate 来做到这一点?如果没有,我如何实现一种预先创建部分条件并稍后将它们组合到谓词中的方法?
我发现将其作为表达式执行此操作的唯一方法是这样的,但这将使我的谓词长数百行
let includeOnlyFavorites = true
#Predicate { includeOnlyFavorites ? $0.isFavorite : true }
Run Code Online (Sandbox Code Playgroud)
我正在开发一个应用程序,允许用户使用快捷操作保存和查询项目。这些项目使用 SwiftData 存储并使用 EntityPropertyQuery 查询
Apple 是这样实现 Query 属性的:
static var properties = QueryProperties {
Property(\BookEntity.$title) {
EqualToComparator { NSPredicate(format: "title = %@", $0) }
ContainsComparator { NSPredicate(format: "title CONTAINS %@", $0) }
}
}
Run Code Online (Sandbox Code Playgroud)
然后将谓词与 …
I want to use a UIColor as foregroundcolor for an object but I don’t know how to convert UIColor to a Color
var myColor: UIColor
RoundedRectangle(cornerRadius: 5).foregroundColor(UIColor(myColor))
Run Code Online (Sandbox Code Playgroud) 我试图从 SwiftUI 的左侧识别 EdgePan。我知道有一些手势,但无法将它们应用于整个屏幕。(尝试使用 DragGesture)。是否可以在 SwiftUI 中实现 EdgePan?或者我如何使用 DragGesture 来做同样的事情?
我试图在我的应用程序中生成一个二维码。问题是每当我做图片时,图片只是一个空方块。我将代码简化为基础,以尝试展示我的问题。
struct ContentView: View {
@State var image: Image = Image(systemName: "circle.fill")
var body: some View {
VStack {
image
.resizable()
.aspectRatio(contentMode: .fill)
.frame(width: 200, height: 200)
.background(Color.green)
}.onAppear {
let myString = "Hello There"
let data = myString.data(using: String.Encoding.ascii)
guard let qrFilter = CIFilter(name: "CIQRCodeGenerator") else { return }
qrFilter.setValue(data, forKey: "inputMessage")
guard let qrImage = qrFilter.outputImage else { return }
let transform = CGAffineTransform(scaleX: 10, y: 10)
let scaledQrImage = qrImage.transformed(by: transform)
self.image = Image(uiImage: UIImage(ciImage: scaledQrImage))
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试用“FlightRecording”实体中的所有条目填充列表。但我不能使用,Text(recording.name)因为它说“NSManagedObject 没有成员‘名称’”。为什么这甚至是 NSManagedObject 而不是 'FlightRecordings' 类型的对象?
struct FlightRecorderBrowser: View {
let flightRecordings: [FlightRecording] = FlightRecorder().fetchAllRecordings()
var body: some View {
NavigationView {
List() {
ForEach(flightRecordings, id: \.self) {recording in
Text(recording.name)
}
}
.navigationBarTitle("Flight Recordings")
}
}
}
Run Code Online (Sandbox Code Playgroud) 我试图显示项目列表。每一行都应该在左侧包含一个特定颜色的条纹和一个标题。这个标题有时超过一行,但只显示为一行和“...”。当我删除条纹时,它显示为多行文本。我附上了代码和两张图片以供比较
继承人我的代码:
HStack {
Rectangle()
.foregroundColor(poll.outcome ? .green : .red)
.frame(width: 3)
VStack {
Text(poll.poll.title!).font(.headline)
.lineLimit(2)
}
}
Run Code Online (Sandbox Code Playgroud)
这是没有矩形的样子:
和矩形:
swiftui ×8
swift ×4
swiftui-list ×2
cifilter ×1
colors ×1
core-data ×1
gesture ×1
image ×1
nspredicate ×1
predicate ×1
qr-code ×1
swift-data ×1
uicolor ×1
uiimage ×1
xcode11 ×1