• Stars
    star
    403
  • Rank 106,718 (Top 3 %)
  • Language
    Ruby
  • License
    MIT License
  • Created over 4 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

MSBlockButton

platform GitHub license CocoaPods GitHub stars

An UIButton Category replace SEL with Block.

Features

  • block syntax

Installation

Cocoapods(Recommended)

  1. Add pod 'MSBlockButton' to your Podfile.
  2. Run pod install

Manual

  1. Add all files under MSBlockButton to your project

Requirements

  • iOS 5.0 and greater
  • ARC/MRC

How To Use

Objective-C

        
    #import "MSBlockButton.h"
    
    CGFloat   width  = [UIScreen mainScreen].bounds.size.width;
    UIButton* button = [UIButton buttonWithType:UIButtonTypeCustom];
    button.frame = CGRectMake((width-100)*0.5, (width-100)*0.5, 100, 100);
    [self.view addSubview:button];
    
    button.backgroundColor = [[UIColor orangeColor] colorWithAlphaComponent:0.8];
    [button setTitle:@"Blocks" forState:UIControlStateNormal];

    [button handleTouchUpInsideEventWithBlock:^(UIButton *sender) {
        NSLog(@"%s",__func__);

    }];
          

Swift

You can use MSBlockButton in Swift projects too. To do this, you must:

  1. Copy the relevant .m and .h files from the MSBlockButton src folder into your project
  2. If prompted to create a "bridging header", you should do so. If not prompted and if you don't already have a bridging header, add one.

For more information on bridging headers, see Swift and Objective-C in the Same Project.

  1. In your bridging header, add a line that says:
    #import "MSBlockButton.h"

If you do the above, you can then write Swift code that uses MSBlockButton. For example, in Swift 3.0 :

     
     let btn = UIButton(frame: CGRect(origin: CGPoint.zero, size: CGSize(width: 100, height: 100)))
     btn.center = view.center
     btn.backgroundColor = UIColor.purple
     btn.setTitle("SwiftVC", for: UIControlState.normal)
     view.addSubview(btn)
     
     btn.handleTouchUpInsideEvent { (btn:UIButton?) in
         print("\("SwiftViewController") \(#function)")
         
     }

License

MSBlockButton is available under the MIT license. See the LICENSE file for more info.