标签: xcode11

如何在swiftUI中忽略具有线性渐变的背景的安全区域?

使用 SwiftUI,我知道如何在整个屏幕上设置一个简单颜色的背景。所以只有后台忽略安全区域。但是当我想用线性渐变来做这件事时,我不知道这样做。

我的观点有一个简单的背景:

import SwiftUI

struct Settings : View {
  var body: some View {
    ScrollView {
        VStack {
          Text("Boussole")
            .color(Color(red: 52/255, green: 73/255, blue: 94/255, opacity: 1.0))
            .multilineTextAlignment(.leading)
            .font(.system(size: 28))
            .padding(.top, 15)
            .frame(minWidth: 0, maxWidth: .infinity, alignment: .leading)
          Toggle(isOn: .constant(false)) {
            Text("Afficher le vrai nord")
              .font(.system(size: 20))
              .color(Color(red: 52/255, green: 73/255, blue: 94/255, opacity: 1.0))
          }
          .padding(.top, 10)
          Toggle(isOn: .constant(true)) {
            Text("Activer la vibration")
              .font(.system(size: 20))
              .color(Color(red: 52/255, green: 73/255, blue: 94/255, opacity: 1.0))
          }
          .padding(.top, 10)
          .padding(.bottom, 20) …
Run Code Online (Sandbox Code Playgroud)

xcode gradient swift swiftui xcode11

6
推荐指数
2
解决办法
5589
查看次数

SwiftUI / CoreData / Master / Detail(带编辑)/ Xcode 11 - Beta 5

处理示例应用程序。目标是从 Master 中的 CoreData 中提取一个列表,然后单击一个列表以转到详细信息,您可以在其中编辑信息并保存。当您在细节中编辑“名称”时,它不仅会更新细节以反映更改,而且还会反映母版上的更改。我已经尝试了很多方法来实现这一点,但到目前为止还没有找到答案。

// Code generation is turned OFF in the xcdatamodeld file

public class EntityName: NSManagedObject, Identifiable {
   @NSManaged public var name: String
   @NSManaged public var active: Bool
}

extension EntityName {
    static func allEntityNameFetchRequest() -> NSFetchRequest<EntityName> {
        let request: NSFetchRequest<EntityName> = EntityName.fetchRequest() as! NSFetchRequest<EntityName>
        request.sortDescriptors = [NSSortDescriptor(key: "name", ascending: true)]
        return request
   }
}


struct MasterView: View {

    @Environment(\.managedObjectContext) var managedObjectContext
    @FetchRequest(fetchRequest: EntityName.allEntityNameFetchRequest()) var allEntityNames: FetchedResults<EntityName>


    var body: some View {
        NavigationView {
            List {
                ForEach(self.allEntityNames) …
Run Code Online (Sandbox Code Playgroud)

core-data swiftui xcode11

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

在两个视图之间传递数据

我想在 watchOS 6 上创建一个安静的简单应用程序,但是在 Apple 更改了 Xcode 11 beta 5 中的 ObjectBindig 之后,我的应用程序不再运行。我只是想在两个视图之间同步数据。

所以我用新的@Published 重写了我的应用程序,但我无法真正设置它:

class UserInput: ObservableObject {

    @Published var score: Int = 0
}

struct ContentView: View {
    @ObservedObject var input = UserInput()
    var body: some View {
        VStack {
            Text("Hello World\(self.input.score)")
            Button(action: {self.input.score += 1})
                {
                    Text("Adder")
                }
            NavigationLink(destination: secondScreen()) {
                Text("Next View")
            }

        }

    }
}

struct secondScreen: View {
    @ObservedObject var input = UserInput()
    var body: some View {
        VStack {
            Text("Button has been pushed …
Run Code Online (Sandbox Code Playgroud)

ios13 swiftui xcode11

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

如何将 SwiftUI 导航栏标题对齐以居中?

如何在 SwiftUI 中居中导航栏标题?

var body: some View {
    NavigationView {
        .navigationBarTitle("Todo Lists")
    }
}
Run Code Online (Sandbox Code Playgroud)

ios13 swiftui xcode11

6
推荐指数
2
解决办法
7399
查看次数

Swift 5 (Xcode 11 Betas 5 &amp; 6) - 如何写入 JSON 文件?

多年来,这个问题已经被问过很多次了,但它在 Swift 5 中再次发生变化,尤其是在最近的两个测试版中。

读取 JSON 文件似乎很简单:

func readJSONFileData(_ fileName: String) -> Array<Dictionary<String, Any>> {

    var resultArr: Array<Dictionary<String, Any>> = []

    if let url = Bundle.main.url(forResource: "file", withExtension: "json") {

        if let data = try? Data(contentsOf: url) {

            print("Data raw: ", data)

            if let json = try? (JSONSerialization.jsonObject(with: data, options: []) as! NSArray) {

                print("JSON: ", json)

                if let arr = json as? Array<Any> {

                    print("Array: ", arr)

                    resultArr = arr.map { $0 as! Dictionary<String, Any> …
Run Code Online (Sandbox Code Playgroud)

filesystems xcode ios swift xcode11

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

为什么 URLSession.DataTaskPublisher 不发布值?

在 Xcode 11 beta 5 或 6 中,我现有的依赖于URLSession.DataTaskPublisher停止工作的代码。似乎DataTaskPublisher永远不会发布任何值,但我不知道为什么。

我已经尝试过.sink.handleEvents作为订阅者。我已经与Just发布者一起测试了 .sink并确认它在那里收到了一个值。

我也试过给DataTaskPublisheraURL和给它 a URLRequest。我尝试了对 API 的请求,包括授权标头,以及对 google.com 和 apple.com 的基本请求。我尝试使用URLSession.shared和创建URLSession. 我也试过使用和不使用mapanddecode运算符。

我已经使用XCTest期望来确认测试每次都会超时,即使我给它 4 分钟的超时。

我刚刚创建了一个新的示例项目,并在根视图控制器中使用以下代码复制了问题:

override func viewDidLoad() {
        super.viewDidLoad()

        print("view did load")

        URLSession.shared.dataTaskPublisher(for: URL(string: "http://apple.com")!)
            .handleEvents(receiveSubscription: { (sub) in
                print(sub)
            }, receiveOutput: { (response) in
                print(response)
            }, receiveCompletion: { (completion) in
                print(completion)
            }, receiveCancel: { …
Run Code Online (Sandbox Code Playgroud)

swift xcode11 combine

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

SwiftUI 设置状态栏样式

我一直在尝试将 SwiftUI 应用程序中的状态栏设置为浅色文本,因为它具有深色背景。

我在几个网站上找到了这个解决方案,但无法让它工作。

HostingController.swift

import Foundation
import UIKit
import SwiftUI

class HostingController : UIHostingController {
    override var preferredStatusBarStyle: UIStatusBarStyle {
    return .lightContent
    }
}
Run Code Online (Sandbox Code Playgroud)

这将在类声明行返回错误,Reference to generic type 'UIHostingController' requires arguments in <...>并建议修复Insert '<<#Content: View#>>'. 应用所述修复会导致错误Use of undeclared type '<#Content: View#>'

然后,您是为了改变window.rootViewControllerSceneDelegate.swift的文件。

SceneDelegate.swift

...

// Create the SwiftUI view that provides the window contents.
        let contentView = Login()

        // Use a UIHostingController as window root view controller.
        if let windowScene …
Run Code Online (Sandbox Code Playgroud)

ios swift ios13 swiftui xcode11

6
推荐指数
3
解决办法
4010
查看次数

删除列表 Swift UI Xcode 11 中的空行

如何List使用 Swift UI删除空行这是我的代码。

struct LandMarkList: View {
    var body: some View {
        NavigationView {
            List(LandMarkListData) { landmark in
                LandMarkRow(landmark: landmark)
            }

        .navigationBarTitle("List")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

ios swiftui xcode11

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

iOS 13 SearchController 后退按钮颜色

我的应用程序中有一个奇怪的视觉错误,它仅适用于从 Xcode 11 版本运行的 iOS 13。我有一个嵌入在导航控制器中的表格视图,默认色调颜色设置为我的应用程序的主要橙色。在 iOS12 上,当您取消搜索操作时,您会看到一个后退按钮,该按钮遵循主要橙色的全局导航控制器色调。这是预期的行为。如下图所示:iOS12中的橙色后箭头

但是,同样的代码在iOS13中产生了一个系统默认的蓝色后退箭头,如下图:

在此处输入图片说明

我已经尝试了一切来尝试覆盖那个蓝色的后退按钮,包括使用自定义操作创建一个自定义的 Bar Button Item,但这太混乱了,我只想简单地覆盖色调颜色。我已经尝试了很明显的searchController.searchBar.tintColor = UIColor(named:"Primary")searchController 是我的 UISearchController,并且我试图覆盖 self.navigationController 色调颜色。我试过本机访问 SearchBar,如下所示:UISearchBar.appearance().tintColor = UIColor(named:"Primary"),但仍然没有运气。我已经在 IB 中尝试了我能想到的所有其他方法,但我无法弄清楚如何达到这个后退按钮的色调。有人可以帮忙吗?

xcode swift swift5 ios13 xcode11

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

如何使用 Apples 的 `xcrun simctl status_bar` 设置日期

使用 Apple 的新命令行工具,xcrun simctl status_bar您现在可以根据需要在模拟器中设置状态栏,而无需任何 3rd 方程序,但是,我无法更改 iPad Pro(12.9-英寸)。

在帮助菜单中,它指出如果您输入有效的 ISO 日期,那么它会在相关的设备上进行调整: xcrun simctl status_bar --help

所以我输入了一个有效的 ISO 日期2016-09-18T17:34:02.666Z,但状态栏之后将如下所示: 日期未正确更改

xcode command-line xcode11

6
推荐指数
2
解决办法
1264
查看次数