Tag: swift3

当模态地显示另一个VC时,CABasicAnimation会被完成

我用下面的方法暂停/恢复animation func pauseAnimation(){ var pausedTime = layer.convertTime(CACurrentMediaTime(), fromLayer: nil) layer.speed = 0.0 layer.timeOffset = pausedTime } func resumeAnimation(){ var pausedTime = layer.timeOffset layer.speed = 1.0 layer.timeOffset = 0.0 layer.beginTime = 0.0 let timeSincePause = layer.convertTime(CACurrentMediaTime(), fromLayer: nil) – pausedTime layer.beginTime = timeSincePause } 只要当前呈现ViewController,它就像魅力一样。 当我以模态方式呈现另一个视图控制器,然后将其解除时,无论本次/解散操作过程耗费了多less时间,animation都会完成。 你有什么build议,为什么会发生这种情况? 如何解决它? 我想补充说,所有其他的视图保持其状态,只有animation完成。 编辑: 我刚才发现,在这种情况下,暂停/恢复正在进行的animation也会完成。 这是我的代码,显示animation实现 import Foundation import UIKit […]

从钥匙串中检索SecKey

我试图升级从生成CSR的这个答案 ,从Swift 2到Swift 3的代码。 我已经升级了大部分代码,但原始答案的实用程序块中的以下代码失败,并显示错误消息: 'init'不可用:使用'withMemoryRebound(to:capacity:_)'来临时查看另一个布局兼容types的内存。 该行发生错误: let status: OSStatus = withUnsafeMutablePointer(to: &dataTypeRef) { SecItemCopyMatching(query as NSDictionary, UnsafeMutablePointer($0)) } func loadKeySecKeyFromKeyChain(key: String) -> SecKey{ let query: Dictionary<String, AnyObject> = [ String(kSecAttrKeyType): kSecAttrKeyTypeRSA, String(kSecAttrKeySizeInBits): KEY_SIZE as AnyObject, String(kSecClass): kSecClassKey, String(kSecAttrApplicationTag): key as AnyObject, kSecReturnRef as String : kCFBooleanTrue ] var dataTypeRef: Unmanaged<AnyObject>? = nil var resultData: […]

如何将图像拉伸成自定义形状(swift3)

下面的代码列表裁剪图像。 我希望图像被转换/拉伸,而不是在形状中裁剪。 所有的图像内容仍然在转换后的图像中。 它只会看起来不同。 extension UIImageView { func addMask(_ bezierPath: UIBezierPath) { let pathMask = CAShapeLayer() pathMask.path = bezierPath.cgPath layer.mask = pathMask } } let myPicture = UIImage(data: try! Data(contentsOf: URL(string:"https://scontent-iad3-1.xx.fbcdn.net/v/t31.0-8/14196150_10207770295835716_3510332720585393213_o.jpg?oh=fdb525410602f40f4735991b713e9c50&oe=596688E5")!))! let iv = UIImageView(image: myPicture) let bezierPath = UIBezierPath() bezierPath.move(to: iv.center) bezierPath.addLine(to: CGPoint(x: iv.frame.maxX, y: 0)) bezierPath.addLine(to: CGPoint(x: iv.frame.maxX, y: iv.frame.maxY)) bezierPath.addLine(to: CGPoint(x: 0, […]

在模拟器打开时从私有有效的用户设置警告中读取

当我点击textField在Xcode中打开模拟器键盘时,会显示: 2017-01-01 17:19:38.668544 FirebaseChat[12334:2921090] [MC] System group container for systemgroup.com.apple.configurationprofiles path is /Users/sajad/Library/Developer/CoreSimulator/Devices/79C88538-E4D6-4CEF-8B20-8D514CF453A8/data/Containers/Shared/SystemGroup/systemgroup.com.apple.configurationprofiles 2017-01-01 17:19:38.669484 FirebaseChat[12334:2921090] [MC] Reading from private effective user settings. 我使用xcode 8和swift 3。 我怎样才能解决这个问题?

无法转换(定时器!) – >无效(((CFRunLoopTimer?) – >无效)! – 将NSTimer扩展转换为Swift 3

我试图将我在我的项目中使用的Pod转换为Swift 3.我没有写它,但原来的作者没有更新它,所以我分叉它,我试图自己做。 但… 我得到这个错误试图将扩展名转换为NSTimer到Swift 3: Cannot convert value of type '(Timer!) -> Void' to expected argument type '((CFRunLoopTimer?) -> Void)! 看起来,Swift 3处理程序types(Timer!) -> Void与旧的CFRunLoop风格的处理程序不兼容,但我不确定如何在保持与iOS 9的兼容性的同时将其转换。 我粘贴下面的代码,由Xcode转换。 您可以在https://github.com/entotsu/TKSubmitTransition/blob/master/SubmitTransition/Classes/NSTimerEx.swiftfind原始代码 干杯 import Foundation extension Timer { class func schedule(delay delay: TimeInterval, handler: (Timer!) -> Void) -> NSTimer { let fireDate = delay + CFAbsoluteTimeGetCurrent() let timer = CFRunLoopTimerCreateWithHandler(kCFAllocatorDefault, […]

Swift 3:如何水平居中在一个UICollectionView只有一节的最后一行单元格?

我只有一个部分使用UICollectionView 。 这是一些可视化: [ xxx ] [ xxx ] [ xx ] 如果UICollectionView中的最后一行没有填满所有3个单元格,我想将这些单元格居中,如下所示: [ xxx ] [ xxx ] [ xx ] 我试图从以下地方实施解决scheme: 如何水平居中UICollectionView单元? 如何居中alignmentUICollectionView的单元格? 但是,解决scheme移动所有的单元格,我只想移动最后一行,如果最后一行不包含X数量的单元格,因为我只有一个部分。 我知道如何设置插入,但我不知道如何做到这一点只是一个部分,并试图调整最后一排单元格的插图。 我刚开始使用UICollectionView ,不知道如何解决这个问题?

无法让didSelectRowAt为TableView工作

我遇到麻烦得到didSelectRowAt方法工作在一个常规的ViewController内的TableView 。 我已经确定表的delegate和data source是在ViewController代码中设置的。 这个ViewController用一个search查询的结果填充tableview单元格到一个API ,并且单元格数据的渲染工作正常。 这只是没有注册的didSelectRowAt方法。 我曾尝试在Main.storyboard上手动添加相同的代理信息,但小号+符号不会触发任何popup窗口。 我想知道是否有需要修复的Main.storyboard中的东西。 我还附加了ViewController和TableView连接检查器的图像。 我是iOS开发新手,没有太多的移动devisegraphics界面的经验,所以我认为这是有些东西,但也许我错了。 这是我的代码的基本版本: class SearchViewController: UIViewController, UISearchBarDelegate, UITableViewDelegate, UITableViewDataSource { @IBOutlet weak var tableView: UITableView! @IBOutlet var searchBar: UISearchBar! …variable declarations …. override func viewDidLoad() { super.viewDidLoad() self.hideKeyboardWhenTappedAround() searchResults = [] searchBar.delegate = self tableView.dataSource = self tableView.delegate = self } func numberOfSectionsInTableView(tableView: UITableView) -> Int […]

在一个TableView中使用2个FRC并configurationFRCDelegate

我发现这个post的问题链接 ,我已经尽我所能将它从Obj-C转换为Swift。 当我添加一个新的实体,并尝试将其保存到CoreData,该应用程序崩溃,并突出显示这一行: modifiedIndexPath = NSIndexPath(row: (indexPath?.row)!, section: 0) 后面的绿色错误如下: Thread 1; EXC_BREAKPOINT (code=1, subcode=0x100008b118) Thread 1; EXC_BREAKPOINT (code=1, subcode=0x100008b118) 。 我不知道这是什么意思,输出面板也只显示(llbd)绿色。 编辑 – 我发现应用程序崩溃,因为indexPath?.row返回零。 我只是不知道为什么它返回零。 我的VC有两个部分是这样设置的: func numberOfSections(in tableView: UITableView) -> Int { return 2 } 标题的标题是这样设置的: // set the titles of the tables func tableView( _ tableView : UITableView, titleForHeaderInSection section: Int)->String? { […]

链接器错误更新后,swift版本和豆荚

我正在安装Alamofire与豆荚和编译时间错误。 有很多关于这个的问题,但是: 删除派生的数据和更新豆荚不适合我。 这是错误的: Alamofire / Alamofire.framework / Alamofire使用较新版本的Swift语言(3.0)编译而不是以前的文件(2.0)对于x86_64体系结构clang:错误:linker命令失败,退出代码1(使用-v来查看调用)

Swift 3转换

我用swift 2.2编写了一个并发API调用的代码。 当我从swift 2.2更改为swift 3时,我正在用swift的语法来解决问题。 帮帮我 let endPoints = [.email, .others] let fetchGroup = dispatch_group_create() let queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); dispatch_apply(endPoints.count, queue) { (index) in let enumType = endPoints[index] switch enumType { case .email: //Make email api call break case .others: //Make other api break default: break } } dispatch_group_notify(fetchGroup, dispatch_get_main_queue()) { if endPoints.count > […]