Skip to content

Instantly share code, notes, and snippets.

func performHeartBeat(sender: UIButton) {
let imageView = UIImageView(frame: self.heartButton.frame)
imageView.image = UIImage(named: "heart_border")
self.view.addSubview(imageView)
UIView.animateWithDuration(0.5, animations: { () -> Void in
imageView.transform = CGAffineTransformMakeScale(3,3)
imageView.alpha = 0
}) { (completed) -> Void in
imageView.removeFromSuperview()
private func setupButton() {
let heartImage = UIImage(named: "heart")
self.heartButton = UIButton(frame: CGRectZero)
self.heartButton.frame.size = CGSizeMake(heartImage!.size.width, heartImage!.size.height)
self.heartButton.center = self.view.center
self.heartButton.setImage(heartImage, forState: .Normal)
self.heartButton.addTarget(self, action: "performHeartBeat:", forControlEvents: .TouchUpInside)
self.view.addSubview(self.heartButton)
}
signal.skipRepeats().observeNext {(value) -> () in
// print values that are not duplicates of the immedately preceding value
print(value)
}
signal.observeNext {(value) -> () in
// values without transformations
print(value)
}
// creating a signal
let (signal, sink) = Signal<Int, NoError>.pipe()
// function called when button is tapped
func buttonTapped(sender: UIButton) {
// sending random value down the stream
sendNext(sink, random() % 3)
}
// somewhere in the application
let producer = countToValue(5)
producer.startWithSignal { (observer, disposable) -> () in
observer.observeNext({ (number) -> () in
print(number)
})
observer.observeCompleted({ () -> () in
print("I'm done counting")
})
}
func countToValue(value: Int) -> SignalProducer<Int, NoError> {
return SignalProducer { (sink, disposable) -> () in
for i in 0...value {
sendNext(sink, i)
}
sendCompleted(sink)
}
}
bankAccountBalance.producer.startWithSignal { (observer, disposable) -> () in
observer.observeNext({ (value) -> () in
print(value)
})
observer.observeCompleted({ () -> () in
print("completed")
})
}
bankAccountBalance.producer.startWithSignal { (signal, disposable) -> () in
signal.observeNext({ (value) -> () in
print(value)
})
signal.observeCompleted({ () -> () in
print("completed")
})
}
bankAccountBalance.producer.startWithSignal { (signal, disposable) -> () in
signal.observeNext({ (value) -> () in
print(value)
})
}
var bankAccountBalance = MutableProperty<Double>(100)