我正在设置一个背景图像来查看控制器。 但也是我想添加模糊效果到这个背景。 我怎样才能做到这一点? 我使用以下代码设置背景: self.view.backgroundColor = UIColor(patternImage: UIImage(named: "testBg")!) 我在互联网上find模糊imageview我怎么能实现这个到我的背景? var darkBlur = UIBlurEffect(style: UIBlurEffectStyle.Dark) // 2 var blurView = UIVisualEffectView(effect: darkBlur) blurView.frame = imageView.bounds // 3 imageView.addSubview(blurView)
我正在学习Swift,我正在阅读从Apple The Swift Programming Language ,我没有Objective C背景(只有PHP,JS和其他,但没有Obj C) 在第24-25页我看到这个代码: //…Class definition stuff… var perimeter: Double { get { return 3.0 * sideLength } set { sideLength = newValue / 3.0 } } //…Class continues… 这部分没有在书中指定,我不明白这是什么。 任何人都可以解释我得到和设置是什么?
我可以做这个: var a = [1,5,7,9,22] a.count // 5 a[a.count – 1] // 22 a[a.endIndex – 1] // 22 但肯定有一个更漂亮的方式?
我们如何测量在Swift中运行函数的时间? 我正在尝试显示这样的经过时间:“Elasped time是0.05秒”。 看到在Java中 ,我们可以使用System.nanoTime(),是否有任何等价的方法在Swift中可用来实现这一点? 请看一下示例程序: func isPrime(var number:Int) ->Bool { var i = 0; for i=2; i<number; i++ { if(number % i == 0 && i != 0) { return false; } } return true; } var number = 5915587277; if(isPrime(number)) { println("Prime number"); } else { println("NOT a prime number"); }
考虑这两个类: class A { var x: Int init(x: Int) { self.x = x } convenience init() { self.init(x: 0) } } class B: A { init() { super.init() // Error: Must call a designated initializer of the superclass 'A' } } 我不明白为什么这是不允许的。 最终,每个类的指定初始化器都被调用了它们需要的任何值,那么为什么我需要在B的init再次指定一个默认值来重复自己呢?
func say(name:String, msg:String) { println("\(name) say \(msg)") } say("Henry","Hi,Swift") <—- error because missing argument label 'msg' in call 我需要使用 say("Henry",msg:"Hi,Swift") 为什么? 如果我把超过两个var的func,所以我需要写var名称,而不是第一个var当我调用这个function 这真的很麻烦,我没有在iBook Swift教程中看到任何解释。
我想创build一个方法,采用通用input并返回一个通用的值的协议。 这是我到目前为止所尝试的,但它会产生语法错误。 使用未声明的标识符T. 我究竟做错了什么? protocol ApiMapperProtocol { func MapFromSource(T) -> U } class UserMapper: NSObject, ApiMapperProtocol { func MapFromSource(data: NSDictionary) -> UserModel { var user = UserModel() as UserModel var accountsData:NSArray = data["Accounts"] as NSArray return user } }
假设这样的设置: 你有一个Xcode 6项目,你已经实现了你自己的类(比如说MyView和MyViewController),Objective-C和Swift 你已经添加了一个游乐场到你的项目 在Playground中,可以使用import关键字import像UIKit这样的模块(框架)。 你如何从游乐场启用项目的其他课程? 只是试图直接访问项目类的结果与一个错误消息: 使用未parsing的标识符'MyView'
有很多关于这个主题的stackoverflow线程,但我仍然没有find一个好的解决scheme。 如果应用程序不在后台,我可以在application:didFinishLaunchingWithOptions:检查launchOptions[UIApplicationLaunchOptionsRemoteNotificationKey] application:didFinishLaunchingWithOptions:调用以查看是否从通知打开。 如果应用程序在后台,所有postbuild议使用application:didReceiveRemoteNotification:并检查应用程序状态。 但是,正如我试验(也作为这个API的名称build议),这个方法被调用时收到的通知,而不是轻拍。 所以问题是,如果应用程序启动,然后后台,并知道从application:didReceiveNotification接收通知application:didReceiveNotification ( application:didFinishLaunchWithOptions:不会触发),你怎么知道用户是否恢复从应用程序点击通知或只是点击应用程序图标? 因为如果用户点击通知,则期望打开通知中提到的页面。 否则它不应该。 我可以使用handleActionWithIdentifier进行自定义动作通知,但是只有当自定义动作button被触发时才触发,而不是在用户点击通知主体时触发。 谢谢。 编辑: 在阅读下面的一个答案后,我想这样可以澄清我的问题: 我们如何区分这两种情况: (A)1.app进入后台; 收到通知 3.用户点击通知; 4.应用程序进入前台 (B)1.app进入背景; 收到通知 3.用户稍后忽略通知并点击应用程序图标; 4.应用程序进入前台 由于application:didReceiveRemoteNotification:在步骤2中都触发了这两种情况。 或者, application:didReceiveRemoteNotification:仅在步骤3中触发(A),但我以某种方式configuration了我的应用程序错误,所以我在步骤2看到它?
我刚开始使用Swift。 我读过这本书,在这样做的过程中学得更好。 我想要UIView子类,并显示一个像视图的login。 我在Objective-C中创build了这个,但是现在我想把它移植到Swift中。 我不使用故事板,所以我在代码中创build了所有的用户界面。 但是第一个问题是我必须实现initWithCoder 。 我给了它一个默认的实现,因为它不会被调用。 现在,当我运行程序时,它崩溃,因为我也要实现initWithFrame 。 现在我得到了这个: override init() { super.init() println("Default init") } override init(frame: CGRect) { super.init(frame: frame) println("Frame init") } required init(coder aDecoder: NSCoder) { super.init(coder: aDecoder) println("Coder init") } 我的问题是我应该在哪里创build我的文本字段等…如果我从来没有实现框架和编码器我怎么可以“隐藏”呢?