adminljqx1 / MSBlockButton

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

About

License:MIT License


Languages

Language:Ruby 81.5%Language:Objective-C 18.5%