小编maz*_*zen的帖子

Swift 请求用户访问照片库的许可

我正在尝试访问照片库以在 swift 4 中导入个人资料图片。

但我收到了这个错误:

此应用程序已崩溃,因为它试图在没有使用说明的情况下访问隐私敏感数据。应用程序的 Info.plist 必须包含一个 NSPhotoLibraryUsageDescription 键和一个字符串值,向用户解释应用程序如何使用这些数据。

我以各种方式请求许可。

我尝试:

<key>NSPhotoLibraryUsageDescription</key>
    <string>this permission for profile photo only</string>
Run Code Online (Sandbox Code Playgroud)

和代码:

let imagePicker = UIImagePickerController()
 override func viewDidLoad() {
     super.viewDidLoad()
     imagePicker.delegate = self
}
@objc func importUserImage() {
        print("import driver")

        imagePicker.sourceType = .photoLibrary
        imagePicker.allowsEditing = true
        self.present(imagePicker, animated: true)
    }
Run Code Online (Sandbox Code Playgroud)

我试试

<key>NSPhotoLibraryAddUsageDescription</key>
    <string>this permission for profile photo only</string>
Run Code Online (Sandbox Code Playgroud)

我什至尝试在代码中做到这一点

import UIKit
import Photos
import UserNotifications

class LoginViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading …
Run Code Online (Sandbox Code Playgroud)

permissions ios swift swift4

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

在swift 3和核心图形中绘制一条直线

我正在尝试使用核心图形和swift 3绘制单个直线.然而,当调用touchesmoved时,它会创建多条线而不是一条线.使用的代码如下:

import UIKit

    class ViewController: UIViewController {

        @IBOutlet weak var drawingPlace: UIImageView!

        var startTouch : CGPoint?
        var secondTouch : CGPoint?

        override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
            let touch = touches.first
            startTouch = touch?.location(in: drawingPlace)
        }

        override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
            for touch in touches{
                secondTouch = touch.location(in: drawingPlace)

                UIGraphicsBeginImageContext(drawingPlace.frame.size)
                drawingPlace.image?.draw(in: CGRect(x: 0, y: 0, width: drawingPlace.frame.width, height: drawingPlace.frame.height))
                let bezier = UIBezierPath()

                bezier.move(to: startTouch!)
                bezier.addLine(to: secondTouch!)
                bezier.close()

                bezier.lineWidth = 4
                UIColor.blue.set()
                bezier.stroke() …
Run Code Online (Sandbox Code Playgroud)

drawing core-graphics sprite-kit swift

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

标签 统计

swift ×2

core-graphics ×1

drawing ×1

ios ×1

permissions ×1

sprite-kit ×1

swift4 ×1