此库被
SHUIKitBlocks
使用,作为许多组件的一部分,用于填补 Foundation、UIKit、CoreLocation、GameKit、MapKit 和 iOS 应用程序架构其他方面的空白。
UIBarButtonItem 上的分类。
一旦项目消失,块会自动移除,因此不需要清理 - Swizzle Free(™)
pod 'SHBarButtonItemBlocks'
将以下内容放在特定文件或项目的预处理器文件中
#import "UIBarButtonItem+SHBarButtonItemBlocks.h"
或
#import "SHBarButtonItemBlocks.h"
#pragma mark -
#pragma mark Init
+(instancetype)SH_barButtonItemWithBarButtonSystemItem:(UIBarButtonSystemItem)systemItem
withBlock:(SHBarButtonItemBlock)theBlock;
+(instancetype)SH_barButtonItemWithImage:(UIImage *)image style:(UIBarButtonItemStyle)style
withBlock:(SHBarButtonItemBlock)theBlock;
+(instancetype)SH_barButtonItemWithTitle:(NSString *)title style:(UIBarButtonItemStyle)style
withBlock:(SHBarButtonItemBlock)theBlock;
#pragma mark -
#pragma mark Add
-(void)SH_addBlock:(SHBarButtonItemBlock)theBlock;
#pragma mark -
#pragma mark Remove
-(void)SH_removeBlock:(SHBarButtonItemBlock)theBlock;
-(void)SH_removeAllBlocks;
#pragma mark -
#pragma mark Properties
#pragma mark -
#pragma mark Getters
@property(nonatomic,readonly) NSSet * SH_blocks;
UIBarButtonItem * button = [UIBarButtonItem SH_barButtonItemWithTitle:@"Clear blocks" style:UIBarButtonItemStyleBordered withBlock:^(UIBarButtonItem *sender) {
[sender SH_removeAllBlocks];
[sender SH_addBlock:^(UIBarButtonItem *sender) {
SHBlockAssert(sender.SH_blocks.count == 1, @"Should have one block");
}];
}];
[button SH_addBlock:^(UIBarButtonItem *sender) {
}]
[button SH_addBlock:counterBlock];
[btnSecond SH_removeControlEventsForBlock:counterBlock];
[button SH_removeBlock:counterBlock];
[sender SH_removeAllBlocks];
// Unique blocks
[button SH_addBlock:blockOne];
[button SH_addBlock:blockTwo];
[button SH_addBlock:blockThree];
[button SH_addBlock:blockThree];
SHBlockAssert(button.SH_blocks.count == 3, @"Should have three blocks");
如果您在项目中使用了 SHBarButtonItemBlocks,我很乐意听到您的反馈。
电子邮箱: [email protected]
推特: @seivanheidari
SHBarButtonItemBlocks 是 © 2013 Seivan,可以根据 MIT 许可证免费分发。查看 LICENSE.md
文件。