小编bac*_*h-f的帖子

iOS 14 中 UIDocumentPickerViewController 的初始化

我有一个UIDocumentPickerViewController只选择图像。这在 iOS 13 中运行良好:

let supportedTypes: [String] = ["public.image"]
let documentPickerViewController = UIDocumentPickerViewController(documentTypes: supportedTypes, in: .import)
Run Code Online (Sandbox Code Playgroud)

我正在尝试在 iOS 14 中实现相同的目标。

但是,init(documentTypes:in:)在 iOS 14.0 中已弃用。

所以我假设我必须使用这个初始化程序: init(forOpeningContentTypes:asCopy:)

forOpeningContentTypes参数需要一个UTType.
我不确定如何使用/导入它。
[UTType.Image]吗?

let supportedTypes: [UTType] = [UTType.Image]
self.viewController = UIDocumentPickerViewController(forOpeningContentTypes: supportedTypes, asCopy: true)
Run Code Online (Sandbox Code Playgroud)

这甚至不会编译,因为Cannot find type 'UTType' in scope.
我也试过import MobileCoreServices甚至import CoreServices,但这没有帮助。

文档初始化为新的文件选择器指向此UTTypeReference -所以我试图用,但它也不能被发现。

我如何才能UIDocumentPickerViewController在 iOS 14 中只选择图像?

更新

这有效(感谢@Warren):

import UniformTypeIdentifiers …
Run Code Online (Sandbox Code Playgroud)

uipickerviewcontroller ios swift ios14

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

Xcode 9.1(9B55)中禁用"添加文档"

例如:

添加文档禁用

有任何想法吗?

MacOS High Sierra 10.13.1
Xcode 9.1 9B55

xcode

19
推荐指数
2
解决办法
4087
查看次数

MediaStore.Images.Thumbnails.getThumbnail返回错误的缩略图而不是NULL

考虑如下图所示的场景:

本土Galery

三张照片,其中一张是大型GIF文件(3MP).

我正在查询MediaStore以检索相应的缩略图.如果我使用此sortOrder通过CursorLoader初始化Cursor:

MediaStore.Images.Media.DATE_ADDED + " DESC""
Run Code Online (Sandbox Code Playgroud)

会发生什么: MediaStore返回先前成功检索的缩略图:

DESC

预期的行为:当MediaStore由于某种原因无法检索给定图像的缩略图时,它必须返回NULL,根据其Javadoc:"...返回一个Bitmap实例.如果与origId关联的原始图像不是,则它可以为null存在或记忆不够."

如果我用这个sortOrder初始化Cursor:

MediaStore.Images.Media.DATE_ADDED + " ASC""
Run Code Online (Sandbox Code Playgroud)

它运行得很好:

ASC

但是我不能简单地改变sortOrder,因为要求是先显示最新的图片.

下面是我的示例代码,这里是完整的示例项目以及用于重现的三个图像.

package com.example.getimagefrommediastore;

import android.app.Activity;
import android.database.Cursor;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.provider.MediaStore;
import android.support.v4.content.CursorLoader;
import android.widget.ImageView;
import android.widget.TextView;

public class GetThumbnailsFromMediaStoreSampleActivity extends Activity {

TextView mThumb_id_01;
TextView mThumb_id_02;
TextView mThumb_id_03;
ImageView mImg_01;
ImageView mImg_02;
ImageView mImg_03;
boolean isThumb01 = true; // Simple flag to control this example
boolean isThumb02 = true;
Cursor mCursorLoader;
int mColumnIndex;
long …
Run Code Online (Sandbox Code Playgroud)

java android mediastore android-cursor android-cursorloader

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

SwiftUI 按钮作为 EditButton

我如何使用按钮EditButton
或者如何使用按钮从列表中激活编辑模式?
或者我如何从EditButton“编辑”/“完成”更改名称?

button swift swiftui

10
推荐指数
3
解决办法
7703
查看次数

Swift 3和NumberFormatter(.currency)==¤?

Xcode 8.0(8A218a)GM
目标:iOS 10(Swift 3)

请考虑以下代码:

let number = NSDecimalNumber(decimal: 22.4)

let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .currency
numberFormatter.locale = Locale.current

let result = numberFormatter.string(from: number)
print(result!)
Run Code Online (Sandbox Code Playgroud)

结果是:

¤22.40
Run Code Online (Sandbox Code Playgroud)

(我不知道是什么¤意思.)

但是,如果我初始化语言环境,例如:

numberFormatter.locale = Locale(identifier: "en_US")
Run Code Online (Sandbox Code Playgroud)

结果将是:

$22.40
Run Code Online (Sandbox Code Playgroud)

......这首先是我所期待的.

请注意,这适用于Playground:

在此输入图像描述

问题似乎只发生在通过Xcode启动的设备/模拟器上.
(我在两个不同的macOS上测试 - 在我的工作场所和家中.)

关于发生了什么的任何想法?

locale nsnumberformatter ios swift3 ios10

8
推荐指数
3
解决办法
2万
查看次数

如何更改 iOS 模拟器“窗口背景颜色”(全屏、Xcode 10、Mojave、黑暗模式)

Mojave (macOS 10.14) 很棒。
Xcode 10.0 (10A254a) 很棒。
黑暗模式很棒。

不是很好,除非我遗漏了什么,是 iOS 模拟器窗口的丑陋灰色背景(全屏时):

iOS模拟器暗模式

关于如何改变这种颜色的任何想法?

ios-simulator xcode10 macos-mojave macos-darkmode

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

在SwiftUI中,如何对“视图”的“外​​部”的“ @Published vars”上的更改做出反应

假设我有以下内容ObservableObject

import SwiftUI

class SomeObservable: ObservableObject {

    @Published var information: String = ""

    init() {
        Timer.scheduledTimer(
            timeInterval: 1.0,
            target: self,
            selector: #selector(updateInformation),
            userInfo: nil,
            repeats: true
        ).fire()
    }

    @objc func updateInformation() {
        information = String("RANDOM_INFO".shuffled().prefix(5))
    }
}
Run Code Online (Sandbox Code Playgroud)

还有一个View,它观察到:

struct SomeView: View {

    @ObservedObject var observable: SomeObservable

    var body: some View {
        Text(observable.information)
    }
}
Run Code Online (Sandbox Code Playgroud)

以上将按预期工作。
View重绘自己的时候ObservableObject变化:

viewUpdate

现在问题是

How could I do the same (say calling a function) in a "pure" struct …

swiftui

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

Swift 5 + kCCDecrypt (CommonCrypto):无法解密

试图Swift 5根据大量其他类似问题在 .

我正在使用CommonCrypto+CCCrypt来加密/解密(AES、256 密钥、随机 iv)。

我倾向于NSData.byteswithUnsafeBytes(这只是太混乱Swift 5)。

我的encrypt功能是这样的:

func encrypt(_ string: String) throws -> Data {
    guard let dataToEncrypt: Data = string.data(using: .utf8) else {
        throw AESError.stringToDataFailed
    }

    // Seems like the easiest way to avoid the `withUnsafeBytes` mess is to use NSData.bytes.
    let dataToEncryptNSData = NSData(data: dataToEncrypt)

    let bufferSize: Int = ivSize + dataToEncryptNSData.length + kCCBlockSizeAES128
    let buffer = UnsafeMutablePointer<NSData>.allocate(capacity: bufferSize)
    defer …
Run Code Online (Sandbox Code Playgroud)

aes commoncrypto swift5

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

SwiftUI 全屏图像背景

我想在背景中有一个全屏图像。我已经实现了这个:

struct LoginView: View {
    var body: some View {
        VStack {
            Spacer();
            Text("Hallo");
            Text("Hallo2");
            Text("Hallo2");
            Text("Hallo2");
            Text("Hallo2");
            Text("Hallo2");
            Text("Hallo2");
            Spacer();
            }.background(Image("Background LaunchScreen")
                .resizable()
                .aspectRatio(UIImage(named: "Background LaunchScreen")!.size, contentMode: .fill)
                .clipped())
            .edgesIgnoringSafeArea(.all)
    }
}
Run Code Online (Sandbox Code Playgroud)

当我移除垫片时,图像不再以全屏模式显示。
当然可以用不同的方式解决吗?

如果我将模拟器中的 iPhone 翻到一边,就会出现左右白色条纹。
我怎样才能改变这个?

background image swiftui

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