Tag: swift3

完成处理程序swift 3从函数返回一个variables

在swift 3中,我很困惑周围的完成处理程序的语法。 在下面的函数中,从Web服务调用中parsingxml文件后,它应该返回一个variables(一个array [String:String] )。 我的尝试是在下面,但显然这是不正确的。 enum HistoryKey { case success([String:String]) case failure(String) } private func getHistoryKeys(searchterm: String, completion: @escaping () -> HistoryKey) { let url = PubmedAPI.createEsearchURL(searchString: searchterm) let request = URLRequest.init(url: url as URL) let task = session.dataTask(with: request) { (data, response, error) in if let theData = data{ let myParser = XMLParser.init(data: […]

CameraView中的图像与叠加。 (Swift 3)?

我刚刚解决了这个问题。 感谢一些很好的帮助,让我走上正轨。 这是我现在的代码。 基本上,我现在可以从绘制的覆盖图和相机预览中制作图像。 但还不能把它们结合起来。 似乎很less有用的代码,我可以find这个简单的。 所以重要的部分是在顶部的扩展块,以及在代码底部附近的func saveToCamera()。 总之,我想现在我有两个我需要的图像。 myImage的快照出现在白色背景上 – 所以不知道这是否是自然的。 这就是它出现在模拟器上的原因。 所以这可能是自然的。 图像1.屏幕截图。 图2.根据说明保存的myImage图像。 import UIKit import AVFoundation import Foundation // extension must be outside class extension UIImage { convenience init(view: UIView) { UIGraphicsBeginImageContext(view.frame.size) view.layer.render(in: UIGraphicsGetCurrentContext()!) let image = UIGraphicsGetImageFromCurrentImageContext() UIGraphicsEndImageContext() self.init(cgImage: (image?.cgImage)!) } } class ViewController: UIViewController { @IBOutlet weak var navigationBar: […]

在Geocode调用中崩溃

在使用CLGeocoder我得到一个崩溃(EXC_BAD_ACCESS),让我在不知道的closures成功的一部分,让我的地标…后。 我正在testing,并可能试图访问服务器多次。 或者我需要在后台线程中进行调用? import UIKit import CoreLocation class ViewController: UIViewController { var destinationPlacemark = CLPlacemark() override func viewDidLoad() { super.viewDidLoad() forwardGeocoding(address: "Infinite Loop, Cupertino, CA 95014") } func forwardGeocoding(address: String) { CLGeocoder().geocodeAddressString(address, completionHandler: { (placemarks, error) in if error != nil { print(error ?? "Error in plscement conversion") return } if (placemarks?.count)! > 0 { […]

无法指定types'(String?,Bool,?,NSError?) – >()'的值

在我更新Xcode版本8.0(8A218a)swift 3后,我得到了这个错误 不能指定types'(String?,Bool,[AnyObject]?,NSError?) – >()'的值来键入'UIActivityViewControllerCompletionWithItemsHandler? activityview.completionWithItemsHandler = {(activityType: String?, completed:Bool, returnedItems:[AnyObject]?, error: NSError?) in if !completed { print("cancelled") return }else{ complele() } } 我一直在下面这个不能指定一个types的值(string!,Bool,[AnyObject]!,NSError!) – >无效的types的值UIActivityViewControllerCompletionWithItemsHandler? 但是我仍然收到错误信息。 它在以前的版本7.3.1 swift 2中运行良好。

iOS – 从底部填充UIBezierpath的animation

我有一个UIBezierPath自定义UIView , draw() 。 我想填充这个path,让我们从下到上说一个矩形。 我怎样才能实现这一点。 从这里我已经看到使用CAShapeLayer它可能。 这是工作正常的animation,但填充不会发生在矩形上从下到上。 请指导。

需要物体以恒定的速度移动

我试图创造一个游戏,物品需要追逐食物。 目前,当食物在给定半径内时,物体加速。 但我需要的速度永远是相同的。 任何build议如何解决这个问题? 我试图添加一个SKEction下的追逐function,我设置position.x和position.y,但我不能让它工作正确。 鱼类: class Fish:SKSpriteNode{ private let kMovingAroundKey = "movingAround" private let kFishSpeed:CGFloat = 4.5 private var swimmingSpeed:CGFloat = 100.0 private let sensorRadius:CGFloat = 100.0 private weak var food:SKSpriteNode! = nil //the food node that this fish currently chase override init(texture: SKTexture?, color: UIColor, size: CGSize) { super.init(texture: texture, color: color, size: […]

当UICollectionView下面有一个UIView时,我怎样才能让我的单元格可选?

我有一个集合视图,并在它下面添加了一个UIView。 单元格显示在它的顶部,但它们不可选。 我怎样才能让他们再次select? 我到目前为止所尝试的: UIView有zPosition -1,我的单元格有+1 UIView.isUserInteractionEnabled = true 我曾尝试添加UIView作为view.addSubview和collectionView?.addSubview collectionView?.insertSubview(UIView,belowSubview:collectionView!) 这家伙有同样的问题,没有解决scheme提供: 在UICollectionView下插入子视图 编辑:我使用此代码来确定select的单元格 override func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { //Code here… } 这一切都工作,当没有UIView下面。 但我想为我的collectionview内容插件有一个可见的“容器”,所以我创build了一个UIView。 问题是上面的代码不会被点击与UIView下面的单元格时被触发。

Alamofireasynchronous调用

我有一个简单的问题。 我正在连接到我的RESTful服务器并尝试连接。 我得到了一个响应,一切工作完美,但是当我尝试调用一个函数来设置一个variables,它只是不叫它。 码: // // LoginClass.swift // LoginApp // // Created by Tarek Adel on 12/3/16. // Copyright © 2016 Tarek Adel. All rights reserved. // import Foundation import Alamofire; import UIKit; class LoginClass { var result: Bool = false; var username: String var password: String init(username: String, password:String) { self.username = username; self.password […]

使用.sks文件来布局复杂的对象与SKScene文件

是否可以使用SceneEditor来布局和创buildSKSpriteNode的复杂子类,根据sks文件加载信息并在场景中创build自定义对象? 我的场景是我有一个popup式对话框(它们只不过是SKSpriteNodes的子类),在对话框中有很多子对象。 我希望把它放在场景编辑器中,类似于我如何布置SKScene,然后在需要时将其呈现在场景中。 我意识到我可以在我的GameScene.sks文件中创build这个对象,但是发现这些对象可能会变得非常混乱,并且认为如果每个对象都有自己的sks文件,可能会更好地存储这些对象。 我试过扩展SKSpriteNode来访问文件类似于场景文件,但它没有工作 if let teamDialog = SKSpriteNode.spriteWithClassNamed(className: "TeamDialog", fileName: "TeamDialog.sks") { } extension SKSpriteNode { static func spriteWithClassNamed(className: String, fileName: String) -> SKSpriteNode? { guard let dialog = SKSpriteNode(fileNamed: fileName) else { return nil } return dialog } }

为什么我不能注册我的设备后注销苹果推送消息?

这是我之前问的问题的后续问题如何注册用户的iOS设备从AppDelegate以外的地方接收推送消息? 目前在我的Swift应用程序中,我有一个默认设置为closures的UISwitch ,当用户打开它时 – 我希望他注册接收推送通知。 但是,当他closures这个function时,他应该从推送通知中取消注册(并且以后不会收到任何推送消息,直到再次注册)。 所以我创build了一个pipe理推送注册的类: class NotificationManager { static var shared = NotificationManager() private var application : UIApplication? func setup(application: UIApplication) { self.application = application } func register () { guard let application = application else { print("Attempt to register without calling setup") return } print("registering for push") let notificationTypes: UIUserNotificationType = [UIUserNotificationType.alert, […]