Tag: swift3

NSPredicate在swift 3迁移后崩溃

在迁移到swift3之后,我有一个无法修复的问题 let fetchRequest: NSFetchRequest<User> = User.fetchRequest() fetchRequest.predicate = NSPredicate(format: "id == %@", id) 我的应用程序在第二行崩溃,访问不良,没有理由。 types是正确的,没有日志,没有什么,只是不好的访问。 有什么build议么? 发现原因,谓词错误,导致id是Int64types,不知道这个版本的swift需要什么样的谓词

UIScrollView在键盘closures时停止滚动

我目前正在使用Swift 3的iPhone应用程序,但是我遇到了滚动视图的问题。 在select一个文本字段和键盘出现之前,滚动视图正常工作(即:我可以上下滚动),但是在解散键盘之后,滚动视图不允许我滚动,这是我的问题。 注意:如果我再次select一个文本字段,使键盘出现,它会正常工作,一旦它被解散了,停止工作。 我检查了scrollview的isScrollEnabled属性,它似乎被启用。 不幸的是,我仍然不太熟悉scrollview的所有细节,似乎无法弄清楚它为什么停止工作。 任何帮助或指针,我可以看看将不胜感激。 编辑:有相当多的代码,但这里是缩小部分相关的滚动视图和键盘: class ScrollViewController: UIViewController, UITextViewDelegate, UITextFieldDelegate { //Scroll view @IBOutlet weak var scrollView: UIScrollView! //UIView inside the scroll view @IBOutlet weak var contentView: UIView! //Save button on the top right corner @IBOutlet weak var saveButton: UIBarButtonItem! //Text field being editted var activeTextField:UITextField? fileprivate var contentInset:CGFloat? fileprivate var indicatorInset:CGFloat? […]

如何在按下button的同时对界面进行更改

我有一个button,将点击时会做一些math。 根据用户input的公式,该button将被轻敲,但随后停留下来,因为应用程序需要一段时间来执行buttonfunction中的math运算。 如果我能在这段时间有一个进度条显示用户,那将是非常棒的。 我添加了一个,但问题是,它不会显示,当button已被轻拍,因为button是滞后的。看起来没有变化可以发生在屏幕上,而button被击倒和滞后。 对不起…我有一点小菜…但是我被卡住了…

如何缩放button中的字体

我试图在Swift中完成我的第一个应用程序,并且遇到了这个问题。 我有一些button与tittles和背景图像。 在不同的设备上运行模拟会使它们缩放,所以标题会从button框架中跳出来。 在我的Xcode属性检查器没有“dynamictypes自动调整字体”checkbox,所以我做了自定义的UIButton类,并作出可检查的变种 @IBInspectable var adjustFontSize : Bool { set { titleLabel?.adjustsFontForContentSizeCategory = newValue } get { return titleLabel!.adjustsFontForContentSizeCategory } 但这并没有帮助,我得到了“自动调整字体需要使用dynamictypes文本样式”的警告 那么当button在不同的设备上改变大小和比例时,我怎样才能使我的button标题缩放比例适合button框架?

快速3中的所有约束是否可以animation化?

我想使用下面的代码来animation视图: UIView.animate(withDuration: 2.7, delay: 0.1, options: .allowAnimatedContent, animations: { self.AVCenterY.constant = 0.8 }, completion: nil) 但它发生得如此之快似乎不是animation。 另一方面,当我animation属性阿尔法它animation(需要2.7秒改变)。 我用了2.7秒来确定问题是我使用了一段时间。

无法通过自定义DelegateProxy和Protocol接收事件

我尝试将DifficultyViewDelegate的委托迁移到observable。 这是我的DifficultyViewDelegate: @objc protocol DifficultyViewDelegate: class { func levelDidIncrease() func levelDidDecrease() } 我的难点: weak var delegate: DifficultyViewDelegate? @IBAction func decreaseLevel(_ sender: Any) { delegate?.levelDidDecrease() } @IBAction func increaseLevel(_ sender: Any) { delegate?.levelDidIncrease() } 这是我的RxDifficultyViewDelegateProxy class RxDifficultyViewDelegateProxy: DelegateProxy, DelegateProxyType { static func currentDelegateFor(_ object: AnyObject) -> AnyObject? { let difficultyView: DifficultyView = object as! DifficultyView return […]

Swift 3如何pipe理不同目标的不同代表

我们为同一个项目创build了两个目标(Target_One&Target_Two)。 Target_One包含SDK1并委托Target1SDKHelperDelegate Target_Two包含SDK2并委托Target2SDKHelperDelegate 创build两个目标的原因是:我们需要上传两个具有相同用户界面但不同SDK集成的应用程序。 我们知道,每个SDK都有自己的代表。 所以我们想要应用特定于目标的代表。 例如:Target_One有一个名为MyClass的类 class MyClass: NSObject, Target1SDKHelperDelegate { } 在上面的类中,我们实现了Target1SDKHelperDelegate委托。 我们对Target_Two也使用相同的类,我们要为Target_Two使用Target2SDKHelperDelegate。 那么我们如何能够让两个不同的代表来实现两个不同的目标呢? 我们也知道要pipe理目标,我们应该使用下面的代码。 #if Target_One #else #endif 但是有谁告诉我们如何使用上面的代理pipe理? 我们想要做一些事情: class MyClass: NSObject #if Target_One , Target1SDKHelperDelegate #else , Target2SDKHelperDelegate #endif { }

Swift:自定义UIView.transition的问题?

好吧,我已经通过https://developer.apple.com/videos/play/wwdc2013/218/和SO问题类似的尝试使用标签栏控制器和它的viewcontrollers进行自定义转换,但在搞清楚主要步骤在这里。 我需要知道如何(意思是示例代码将是真正有用的)来调用一个自定义的UIView.transition或只是在UIView.transition的自定义option 。 我需要使用它来在标签栏控制器中的标签之间进行滑动/模式模仿转换。 我可以得到转换的唯一方法是使用下面的函数(这会使它们消失): func tabBarController(_ tabBarController: UITabBarController, shouldSelect viewController: UIViewController) -> Bool { if selectedViewController == nil || viewController == selectedViewController { return false } let fromView = selectedViewController!.view let toView = viewController.view UIView.transition(from: fromView!, to: toView!, duration: 0.3, options: [.transitionCrossDissolve], completion: nil) return true } 并在手动调用它,我编程chnage *selectedIndex*为我的选项卡控制器: //SWITCHES BUTTON ——————————————- func switchTab(index: […]

标签栏没有select委托方法给予先前选定的标签索引在ios中,swift 3

我试图检测用户select哪个标签,实时。 作为一个例子,如果用户select0 th索引,同时我想让用户select第zeroth索引选项卡。 所以为此,我使用tabbarcontroller委托方法。 override func tabBar(_ tabBar: UITabBar, didSelect item: UITabBarItem) { print("the selected index is : \(selectedIndex)") } 但是这显示了以前的视图controller.as例如认为我在second tab ,然后我select第first tab然后这打印索引为2我怎样才能得到正确的select选项卡。 希望你的帮助。

NSKeyedArchiver和NSKeyedUnarchiver / Swift 3.0

我正在使用NSKeyedArchiver & NSKeyedUnarchiver在Core-Data存储一些复杂的数据,稍后在我的应用程序中检索它。 直到现在,这个工作完美无缺,但在迁移之后, Swift 3.0似乎并不满意我的代码。 我早在我的代码中: var firstArray = [Int](), secondArray = [CGFloat]() ……. // stores some values in firstArray and also in secondArray. ……. 这里是如何存储数据的代码如下所示: let masterArray = [firstArray, secondArray] as [Any] let dataForApp:NSData = NSKeyedArchiver.archivedData(withRootObject: masterArray) as NSData entityFieldsDico = ["dataForAppArray":dataForApp] // Use entityFieldsDico to save dataForApp in Core-Data under the key […]