标签: ios13

UICollectionView和SwiftUI?

如何使用SwiftUI创建正方形项目的网格(例如在iOS照片库中)?

我尝试了这种方法,但是不起作用:

var body: some View {
    List(cellModels) { _ in
        Color.orange.frame(width: 100, height: 100)
    }
}
Run Code Online (Sandbox Code Playgroud)

列表仍然具有UITableView样式:

在此处输入图片说明

ios uicollectionview ios13 swiftui

26
推荐指数
8
解决办法
9432
查看次数

如何检查iOS / iPadOS中是否启用了暗模式?

从iOS / iPadOS 13开始,提供了深色用户界面样式,类似于macOS Mojave中引入的深色模式。如何检查用户是否已启用系统范围的暗模式?

ios ios13 ipados ios-darkmode

25
推荐指数
10
解决办法
4419
查看次数

在SwiftUI中找到Image(systemName :)的所有可用图像

在哪里可以找到初始化程序中可用的所有系统映像Image(systemName:)

我只使用了"chevron""star.fill"到目前为止,在苹果公司的SwiftUI系列教程发现。但是,我在任何官方文档中都找不到完整的图标列表。

swift ios13 swiftui sf-symbols

25
推荐指数
6
解决办法
6206
查看次数

iOS 13奇怪的搜索控制器差距

在iOS 13 beta 6上使用Xcode 11 beta 5运行该应用程序时,在显示搜索结果视图控制器时遇到了奇怪的差距:

在此处输入图片说明

这是如何设置的:

let searchResultsController = BLSearchResultsController()

let ret = UISearchController(searchResultsController: searchResultsController)
ret.searchResultsUpdater = self
ret.delegate = self
ret.searchBar.delegate = self;
ret.searchBar.autocapitalizationType = .none
ret.searchBar.placeholder = NSLocalizedString("SearchMsg", comment: "")
        ret.searchBar.enablesReturnKeyAutomatically = true

if #available(iOS 13.0, *) {
    ret.searchBar.showsScopeBar = false
    ret.searchBar.backgroundColor = .white

    let searchTextField = ret.searchBar.searchTextField
    searchTextField.font = UIFont.tuttiRegularFont(16)
    searchTextField.accessibilityIdentifier = "Main Search Field"
    if let searchImageView = searchTextField.leftView as? UIImageView {
        searchImageView.image = UIImage(named: "home-search-icon")
     }
}
Run Code Online (Sandbox Code Playgroud)

结果搜索控制器是正常的UITableViewController,仅添加到中navigationItem.searchController。没有精美的演示代码。当在最新的实时Xcode上构建并在iOS 11/12设备上运行时,不存在此问题,这使我相信一些潜在的iOS …

xcode swift ios13

25
推荐指数
2
解决办法
4173
查看次数

iOS Swift 组合:取消 Set<AnyCancellable>

如果我已将可取消集存储到 ViewController 中:

private var bag = Set<AnyCancellable>()
Run Code Online (Sandbox Code Playgroud)

其中包含多个订阅。

1 - 我应该在 deinit 中取消订阅吗?或者它会自动完成工作?

2 - 如果是这样,我如何取消所有存储的订阅?

bag.removeAll() is enough?
Run Code Online (Sandbox Code Playgroud)

还是我应该遍历集合并一一取消所有订阅?

for sub in bag {
   sub.cancel()
}
Run Code Online (Sandbox Code Playgroud)

Apple 表示订阅一直有效,直到存储的 AnyCancellable 在内存中。所以我想解除分配可取消的bag.removeAll()应该足够了,不是吗?

ios swift ios13 swiftui combine

25
推荐指数
4
解决办法
2万
查看次数

在 SwiftUI 中链接动画

我正在 SwiftUI 中处理相对复杂的动画,并且想知道链接各种动画阶段的最佳/最优雅的方式是什么。

假设我有一个视图,它首先需要缩放,然后等待几秒钟然后消失(然后等待几秒钟并重新开始 - 无限期)。

如果我尝试在同一个视图/堆栈上使用多个 withAnimation() 块,它们最终会相互干扰并弄乱动画。

到目前为止我能想到的最好的方法是在初始视图 .onAppear() 修饰符上调用一个自定义函数,在该函数中,为动画的每个阶段使用 withAnimation() 块,它们之间有延迟。所以,它基本上看起来像这样:

func doAnimations() {
  withAnimation(...)

  DispatchQueue.main.asyncAfter(...)
    withAnimation(...)

  DispatchQueue.main.asyncAfter(...)
    withAnimation(...)

  ...

}
Run Code Online (Sandbox Code Playgroud)

它最终很长而且不是很“漂亮”。我确信必须有更好/更好的方法来做到这一点,但到目前为止我尝试的一切都没有给我我想要的确切流程。

任何想法/建议/提示将不胜感激。谢谢!

animation ios13 swiftui xcode11

24
推荐指数
3
解决办法
7004
查看次数

带有动画完成回调的 SwiftUI

我有一个基于某种状态的 swiftUI 动画:

withAnimation(.linear(duration: 0.1)) {
    self.someState = newState
}
Run Code Online (Sandbox Code Playgroud)

当上述动画完成时是否有任何回调被触发?

如果有关于如何在 SwiftUI 中使用完成块完成动画而不是 的任何建议withAnimation,我也愿意接受这些建议。

我想知道动画何时完成,以便我可以做其他事情,就本示例而言,我只想在动画完成时打印到控制台。

animation ios swift ios13 swiftui

23
推荐指数
5
解决办法
9701
查看次数

swiftui 列表部分中的圆角

这是 iOS 13 Health 应用程序的屏幕截图 - 用户个人资料。我最近开始使用并想知道如何开发如下所示的屏幕。我尝试了简单和分组的列表样式。但我无法看到下面的布局。

这样的 UI 可以纯粹使用吗?

我特别在寻找圆形部分并在列表中包含一个图像。 iOS 13 健康应用 - 用户资料

ios13 swiftui swiftui-list

23
推荐指数
3
解决办法
8358
查看次数

升级到iOS 13后,钥匙串查询始终返回errSecItemNotFound

我将密码存储到iOS钥匙串中,以后再检索它们以在我的应用程序中实现“记住我”(自动登录)功能。

我围绕Security.framework功能(SecItemCopyMatching(),等等)实现了自己的包装器,直到iOS 12为止,它的运行都像是一种魅力。

现在,我正在测试我的应用程序不会与即将推出的iOS 13兼容,瞧瞧:

SecItemCopyMatching() 总是回来 .errSecItemNotFound

...即使我以前已经存储了要查询的数据。

我的包装是用静态特性方便地提供的价值类kSecAttrServicekSecAttrAccount组装查询字典时:

class LocalCredentialStore {

    private static let serviceName: String = {
        guard let name = Bundle.main.object(forInfoDictionaryKey: "CFBundleName") as? String else {
            return "Unknown App"
        }
        return name
    }()
    private static let accountName = "Login Password" 

// ...
Run Code Online (Sandbox Code Playgroud)

使用以下代码密码插入钥匙串:

/* 
  - NOTE: protectWithPasscode is currently always FALSE, so the password
  can later be retrieved programmatically, i.e. without user interaction. 
 */ …
Run Code Online (Sandbox Code Playgroud)

keychain security-framework ios ios13

22
推荐指数
2
解决办法
1307
查看次数

-1103错误域= NSURLErrorDomain代码= -1103“资源超出最大大小” iOS 13

当iOS 13上的响应过大(14kb)时,我们将面临以下网络错误。

[-1103] Error Domain=NSURLErrorDomain Code=-1103 "resource exceeds maximum size"

当我们使用Alamofire时,此问题被视为错误结果,这破坏了我们对结果的处理。

奇怪的是,如果我们直接使用NSURLSession,尽管从日志记录中仍然可以看到此错误,但实际上我们并没有在

session.dataTask(with: request) { value, response, error in ... }
Run Code Online (Sandbox Code Playgroud)

因此,结果可以正确处理。

这个问题从未见过。有人对此有想法吗?

objective-c ios swift ios13

21
推荐指数
5
解决办法
3354
查看次数