Skip to content

kamikuo/SwiftEvents

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SwiftEvents

define and trigger events for class.

Usage

Add protocol 'EventsOwner' to class and define events.

class SomeClass : EventsOwner {
    var someEvent: Event { return Event(name: "someEvent", owner: self) }
    
    func doSomeEvent() {
        someEvent.trigger()
    }
}
let someObject = SomeClass()
someObject.someEvent.addAction { _ in
    print("SomeEvent did trigger!")
}

someObject.doSomeEvent()
//SomeEvent did trigger!

Example

Create a closure button.

class ClourseButton : UIButton, EventsOwner {
    override init(frame: CGRect) {
        super.init(frame: frame)
        addTarget(self, action: #selector(didClick), for: .touchUpInside)
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    var clickEvent: SwiftEvents.Event { return SwiftEvents.Event(name: "click", owner: self) }
    @objc private func didClick() {
        clickEvent.trigger()
    }
}

Lisence

The MIT License (MIT)

About

define and trigger events for class.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published