Observable

所属分类:网络编程
开发工具:Swift
文件大小:0KB
下载次数:0
上传日期:2018-03-03 19:09:28
上 传 者sh-1993
说明:  一小段代码,用于在项目中启用 React编程。,
(A small piece of code to enable reactive programming into your project.,)

文件列表:
Observable/ (0, 2018-03-03)
Observable/Observable.swift (3715, 2018-03-03)
Observer-example/ (0, 2018-03-03)
Observer-example/Observer-example.xcodeproj/ (0, 2018-03-03)
Observer-example/Observer-example.xcodeproj/project.pbxproj (13448, 2018-03-03)
Observer-example/Observer-example.xcodeproj/project.xcworkspace/ (0, 2018-03-03)
Observer-example/Observer-example.xcodeproj/project.xcworkspace/xcuserdata/ (0, 2018-03-03)
Observer-example/Observer-example.xcodeproj/project.xcworkspace/xcuserdata/rafael.xcuserdatad/ (0, 2018-03-03)
Observer-example/Observer-example.xcodeproj/project.xcworkspace/xcuserdata/rafael.xcuserdatad/UserInterfaceState.xcuserstate (23571, 2018-03-03)
Observer-example/Observer-example.xcodeproj/xcuserdata/ (0, 2018-03-03)
Observer-example/Observer-example.xcodeproj/xcuserdata/rafael.xcuserdatad/ (0, 2018-03-03)
Observer-example/Observer-example.xcodeproj/xcuserdata/rafael.xcuserdatad/xcdebugger/ (0, 2018-03-03)
Observer-example/Observer-example.xcodeproj/xcuserdata/rafael.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist (91, 2018-03-03)
Observer-example/Observer-example.xcodeproj/xcuserdata/rafael.xcuserdatad/xcschemes/ (0, 2018-03-03)
Observer-example/Observer-example.xcodeproj/xcuserdata/rafael.xcuserdatad/xcschemes/Observer-example.xcscheme (3451, 2018-03-03)
Observer-example/Observer-example.xcodeproj/xcuserdata/rafael.xcuserdatad/xcschemes/xcschememanagement.plist (488, 2018-03-03)
Observer-example/Observer-example/ (0, 2018-03-03)
Observer-example/Observer-example/AppDelegate.swift (2179, 2018-03-03)
Observer-example/Observer-example/Assets.xcassets/ (0, 2018-03-03)
Observer-example/Observer-example/Assets.xcassets/AppIcon.appiconset/ (0, 2018-03-03)
Observer-example/Observer-example/Assets.xcassets/AppIcon.appiconset/Contents.json (585, 2018-03-03)
Observer-example/Observer-example/Base.lproj/ (0, 2018-03-03)
Observer-example/Observer-example/Base.lproj/LaunchScreen.storyboard (1768, 2018-03-03)
Observer-example/Observer-example/Base.lproj/Main.storyboard (26509, 2018-03-03)
Observer-example/Observer-example/Info.plist (1094, 2018-03-03)
Observer-example/Observer-example/SecondViewController.swift (675, 2018-03-03)
Observer-example/Observer-example/ThirdViewController.swift (2122, 2018-03-03)
Observer-example/Observer-example/ViewController.swift (1804, 2018-03-03)
example-images/ (0, 2018-03-03)
example-images/Observable.gif (98346, 2018-03-03)
example-images/Observable2.gif (561487, 2018-03-03)
example-images/Observable3.gif (357290, 2018-03-03)

## Observable.Swift UPDATE: Now you can add as much switches as you need, check the example project. With this small piece of code (Observable.swift) you will be able to add reactivity programming to your app. Simple, useful and easy to use. ```swift var n = Observable(1) var c: Int = 0 n.valueDidChange = { [unowned self] in c = n.value // 2 then 3 } n.value = 2 c // 2 n.value = 3 c // 3 // we can create and combine signals with Observable properties ``` ObservableSwitch: With the ObservableSwitch you are able to combine signals and run some code depending on the status result. You can specify the bool state you are expecting to run the closure (available: .AnyState, .OnlyTrue, .OnlyFalse). Bellow we: - enable/disable a UIButton based on the length of the username and password fields. - check for strong passwords (length > 10) - check for the master password (.OnlyTrue) ```swift // signin enabler switch let obSwitch = ObservableSwitch(.AnyState) obSwitch.action = { [unowned self] (status: Bool) -> () in self.signin.alpha = (status) ? 1 : 0.5 self.signin.enabled = status } // strong passwords switch let obSwitchGreatPassword = ObservableSwitch(.AnyState) obSwitchGreatPassword.action = { [unowned self] (status: Bool) -> () in self.signin.backgroundColor = (status) ? UIColor.green : UIColor.blue } // master password switch let obSwitchMasterPassword = ObservableSwitch(.OnlyTrue) obSwitchMasterPassword.action = { [unowned self] (status: Bool) -> () in let alertController = UIAlertController(title: "I know!", message: "It rocks!!!", preferredStyle: .alert) let action = UIAlertAction(title: "=)", style: .default, handler: nil) alertController.addAction(action) self.present(alertController, animated: true, completion: nil) } // adding the signals to the ObservableTextField properties self.username.addSignal({ [unowned self] in self.username.count >= 4 }, toSwitch: obSwitch) self.password.addSignal({ [unowned self] in self.password.count >= 4 }, toSwitch: obSwitch) self.password.addSignal({ [unowned self] in self.password.count > 10 }, toSwitch: obSwitchGreatPassword) self.password.addSignal({ [unowned self] in self.password.text == "swift rocks" }, toSwitch: obSwitchMasterPassword) ``` ![Alt text](https://raw.githubusercontent.com/colatusso/Observable.Swift/master/example-images/Observable3.gif) ObservableTextField: ```swift self.textField.textDidChange = { [unowned self] (text: String) -> () in self.label.text = "Hi \(text)!" } ``` ![Alt text](https://raw.githubusercontent.com/colatusso/Observable.Swift/master/example-images/Observable2.gif) Observable: ```swift // you can create signals for Observable properties in case you need to observe/manage // multiple properties/states self.word.valueDidChange = { [unowned self] in self.label.text = self.word.value self.label.textColor = self.getRandomColor() } ``` ![Alt text](https://raw.githubusercontent.com/colatusso/Observable.Swift/master/example-images/Observable.gif) ## License All this code is released under the MIT license.

近期下载者

相关文件


收藏者