小编Mof*_*waw的帖子

SwiftUI | 选择器 - 更改选定行的颜色

我想更改所选行的颜色。

正如您所看到的,默认情况下它具有浅灰色。

我不知道该怎么做,因为我根本找不到访问这一行的方法。有什么办法可以做到这一点吗?

演示代码:

struct ContentView: View {
    
    var data = Array(0...20).map { "\($0)" }
    @State private var selected = 0

    
    var body: some View {
        VStack {
            Picker("", selection: $selected) {
                ForEach(0 ..< data.count) {
                    Text(data[$0])
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

UIKit 的答案也将受到欢迎,因为我也没有找到办法。

谢谢你!

ios swift swiftui

7
推荐指数
2
解决办法
4991
查看次数

云套件| 用户删除“设置”中的所有 iCloud 数据还会重置本地核心数据存储吗?

我面临以下问题:

当用户决定删除设置内的所有 iCloud 数据时,所有本地核心数据保存也会自动删除。

经过一些调试后,我发现这正是在我第一次初始化NSPersistentCloudKitContainer. 那么合并会以某种方式重置本地数据吗?

我还使用NSPersistentCloudKitContainer. 我也可以观察到这种行为,这让我得出结论,这是默认发生的?

任何帮助将不胜感激。如果您愿意,我可以告诉您详细信息,我只是不知道应该包括什么。

更新

这可能是故意的吗?

据称,这一操作还将删除该 iPhone 上存储的所有数据

但如果用户只想清理一些 iCloud 空间怎么办?

有趣的

通过测试许多实际应用程序 - 其中一部分也显示了丢失所有本地数据的行为。但也有相当数量的应用程序在重置后保留本地数据。

我还用苹果自己的 Clips 应用程序对其进行了测试。所有本地数据也消失了。

core-data ios icloud swift cloudkit

7
推荐指数
0
解决办法
241
查看次数

SwiftUI | 使用 LazyVGrid 进行拖放?

是否可以使用拖放功能对 LazyVGrid 内的项目重新排序?

当将 List 与 .onMove() 一起使用时,类似于编辑模式吗?

谢谢!

ios swift swiftui xcode12

5
推荐指数
1
解决办法
3369
查看次数

CoreData + CloudKit 仅在最小化并重新打开应用程序后同步

我目前正在制作一个应用程序,需要它的 CoreData 存储通过 iCloud 跨设备同步。

一切正常,只是不是实时同步。(或者至少有点接近)。当 Device1 更改某些内容后我在 Device2 上什么都不做时,它根本不同步。事实上,我必须最小化并重新打开 Device2 上的应用程序才能使同步正常工作。

这很好地证明了这一点:(来源

这是我的代码片段:

let container: NSPersistentCloudKitContainer
var context: NSManagedObjectContext { container.viewContext }

init() {
    container = NSPersistentCloudKitContainer(name: "__Decision")
    
    guard let description = container.persistentStoreDescriptions.first else { ... }
    description.setOption(true as NSObject, forKey:
        NSPersistentStoreRemoteChangeNotificationPostOptionKey)
    
    container.loadPersistentStores(completionHandler: { ... })
    
    container.viewContext.automaticallyMergesChangesFromParent = true
    container.viewContext.mergePolicy = NSMergeByPropertyObjectTrumpMergePolicy
    
    NotificationCenter.default.addObserver(self, selector: #selector(self.processUpdate), name: .NSPersistentStoreRemoteChange, object: nil)
}


@objc func processUpdate(notification: NSNotification) {
    operationQueue.addOperation {
        DispatchQueue.main.async { ... } //Fetch new synched data and update …
Run Code Online (Sandbox Code Playgroud)

core-data swift cloudkit

5
推荐指数
1
解决办法
885
查看次数

SwiftUI | 阻止 TextField 自动随键盘向上移动

从 iOS14 开始,我发现TextField一旦键盘出现,我所有的s 都会自动向上移动。

我还没有找到阻止这种情况的方法,我错过了什么吗?

这是一个简单的演示+代码:

演示:

代码:

import SwiftUI

struct ContentView: View {
    
    @State private var textInput: String = ""
    
    var body: some View {
        TextField("Test", text: $textInput)
    }
}
Run Code Online (Sandbox Code Playgroud)

ios swift swiftui

4
推荐指数
1
解决办法
1030
查看次数

如何在Swift 4中以编程方式向按钮添加IBAction?

如何以编程方式将IBAction添加到按钮?

button.addTarget(self, action: Selector(("buttonAction:")), for: 
.touchUpInside)

func buttonAction(sender: Any) {
    print("test")
}
Run Code Online (Sandbox Code Playgroud)

这给了我一个" 线程1:信号SIGABRT "错误.

xcode uibutton ios swift

3
推荐指数
1
解决办法
3775
查看次数

斯威夫特 | 使用 HSL 颜色空间代替标准 HSB/HSV

我目前正在开发 HSL 颜色选择器,它需要 HSL 颜色空间。

但根据我的发现,两者UIColorColor只能用 来初始化brightness,而不是lightness我需要的。

有没有一种方法可以使用 HSL 颜色空间而不是默认的 HSB/HSV 颜色空间?

请问,从 HSB 转换为 HSL 的最佳实践是什么?

谢谢你!

colors uicolor ios swift swiftui

3
推荐指数
1
解决办法
3667
查看次数

SwiftUI | 动画此路径形状

我有以下情况:

我想用自定义动画翻转这个形状。我不知道如何恰当地描述它。

每当我上的箭头挖掘,应该转变成另一种。无需翻转、旋转等,只需简单变换即可。

如果这还不够准确,请随时发表评论!

演示代码

struct ContentView: View {
    
    @State private var change = false
    
    private let arrowWidth: CGFloat = 80
    
    
    var body: some View {
        Path { path in
            path.move(to: .zero)
            path.addLine(to: CGPoint(x: arrowWidth/2, y: change ? -20 : 20))
            path.move(to: CGPoint(x: arrowWidth/2, y: change ? -20 : 20))
            path.addLine(to: CGPoint(x: arrowWidth, y: 0))
        }
        .stroke(style: StrokeStyle(lineWidth: 12, lineCap: .round))
        .frame(width: arrowWidth)
        .foregroundColor(.green)
        .animation(.default)
        .onTapGesture { change.toggle() }
        .padding(.top, 300)
    }
}
Run Code Online (Sandbox Code Playgroud)

正如您现在所看到的,它没有动画。我不知道该怎么做。

任何帮助深表感谢。谢谢!

注意:我不能用两个圆角矩形 + 简单地旋转来做到这一点,因为我有一个不透明动画,这使得重叠可见。

animation ios swift swiftui

3
推荐指数
1
解决办法
208
查看次数

SwiftUI - 使用 drawingGroup() 禁用 TextField

我正在尝试提高自定义模态视图的动画性能。

通过使用 .drawingGroup(),我设法做到了,但是我的 TextField 被禁用了。像这样:

在此处输入图片说明

我收到错误消息:“无法呈现 PlatformViewRepresentableAdaptor<> 的扁平版本”

有没有办法来解决这个问题?

注意:我使用的是标准 TextField。

谢谢!

ios swift metal swiftui

1
推荐指数
1
解决办法
442
查看次数

使用 Core Data 从后台线程获取

我想从后台线程获取数据以提高性能。我怎样才能实现这个目标?我无法在任何地方找到帮助。

目前,我正在像这样获取数据:

do {
    let items = try mainContext.fetch(Item.fetchRequest())
    return items
} catch { ... }
Run Code Online (Sandbox Code Playgroud)

根据我的理解,我无法在后台线程上运行上述代码,因为主上下文绑定到主线程。所以这是不可能的:

DispatchQueue.global().async {
    do {
        let items = try mainContext.fetch(Item.fetchRequest())
        completion(items)
    } catch { ... }
}
Run Code Online (Sandbox Code Playgroud)

所以我尝试在背景上下文中执行此操作,如下所示:

let backgroundContext = container.newBackgroundContext()
backgroundContext.parent = mainContext

backgroundContext.perform {
    do {
        let items = try backgroundContext.fetch(Item.fetchRequest())
        DispatchQueue.main.async { completion(items) }
    } catch { ... }
}
Run Code Online (Sandbox Code Playgroud)

但不幸的是,这似乎也不起作用。

任何帮助将非常感激。太感谢了!

core-data ios swift

1
推荐指数
1
解决办法
2445
查看次数

标签 统计

swift ×10

ios ×9

swiftui ×6

core-data ×3

cloudkit ×2

animation ×1

colors ×1

icloud ×1

metal ×1

uibutton ×1

uicolor ×1

xcode ×1

xcode12 ×1