支持图片和文本的自定义ActionSheet,易于使用和修改。我们开发了用于我们的BIP Messenger应用程序。
使用简单,只需将"BIPActionSheetKit.h"导入到您希望使用该库的类中。
例如,如果您希望在按钮被点击时显示action sheet
#import "BIPActionSheetKit.h"
@implementation ViewController
- (IBAction)btnTapped:(id)sender {
BIPActionSheetItem *item = [BIPActionSheetItem itemWithTitle:@"Item1" image:[UIImage imageNamed:@"asCallIcon"] actionHandler:^(BIPActionSheet *actionSheet) {
NSLog(@"Item1 Tapped");
}];
BIPActionSheetItem *item2 = [BIPActionSheetItem itemWithTitle:@"Item2" image:[UIImage imageNamed:@"asCallIcon"] textColor:[UIColor blackColor] actionHandler:^(BIPActionSheet *actionSheet) {
NSLog(@"Item2 Tapped");
}];
BIPActionSheetItem *item3 = [BIPActionSheetItem itemWithTitle:@"Item3" image:[UIImage imageNamed:@"asCallIcon"] actionHandler:^(BIPActionSheet *actionSheet) {
NSLog(@"Item3 Tapped");
}];
BIPActionSheetItem *item4 = [BIPActionSheetItem itemWithTitle:@"Item4" image:[UIImage imageNamed:@"asCallIcon"] actionHandler:^(BIPActionSheet *actionSheet) {
NSLog(@"Item4 Tapped");
}];
BIPActionSheetItem *item5 = [BIPActionSheetItem itemWithTitle:@"Item5" image:[UIImage imageNamed:@"asCallIcon"] actionHandler:^(BIPActionSheet *actionSheet) {
NSLog(@"Item5 Tapped");
}];
BIPActionSheetItem *item6 = [BIPActionSheetItem itemWithTitle:@"Item6" image:[UIImage imageNamed:@"asCallIcon"] actionHandler:^(BIPActionSheet *actionSheet) {
NSLog(@"Item6 Tapped");
}];
[BIPActionSheet showActionSheetWithTitle:@"This is title" items:@[item, item2, item3, item4, item5, item6] cancelButtonTitle:@"Cancel" cancelHandler:^{
NSLog(@"Cancel Tapped");
}];
}
@end
@property (nonatomic, assign, readonly, getter=isVisible) BOOL visible;
+ (BOOL)isAnyActionsheetVisible;
+ (void)dismissLastActiveActionsheet;
+ (void)dismissAllActionsheets;
可以设置ActionSheet的全局外观。
注意:如果您使用特定文本颜色初始化BIPActionSheetItem,则此库首先会监听您如何初始化项目以显示外观。
例如:您使用以下方式初始化actionSheetItem,然后此库首先选择此项textColor为蓝色,即使您为特定项目以黑色颜色初始化了外观。
BIPActionSheetItem *item2 = [BIPActionSheetItem itemWithTitle:@"Item2" image:[UIImage imageNamed:@"asCallIcon"] textColor:[UIColor blueColor] actionHandler:^(BIPActionSheet *actionSheet) {
NSLog(@"Item2 Tapped");
}];
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
[[BIPActionSheetItemView appearance] setCancelButtonColor:[UIColor blueColor]];
[[BIPActionSheetItemView appearance] setCancelButtonFont:[UIFont fontWithName:@"Helvetica-Bold" size:17]];
[[BIPActionSheetItemView appearance] setItemFont:[UIFont fontWithName:@"Helvetica" size:17]];
[[BIPActionSheetItemView appearance] setItemTextColor:[UIColor darkGrayColor]];
[[BIPActionSheetItemView appearance] setTitleFont:[UIFont fontWithName:@"Helvetica" size:14]];
[[BIPActionSheetItemView appearance] setTitleTextColor:[UIColor redColor]];
[[BIPActionSheetItemView appearance] setImageAlignment:Left];
[[BIPActionSheetItemView appearance] setImageHeight:30.f];
[[BIPActionSheetItemView appearance] setImageWidth:30.f];
return YES;
}
您可以使用堆叠设计轻松管理应用程序范围内的action sheets。
例如:使用BIPActionSheetStack全局实例的以下方法很容易检查是否已经呈现了特定的action sheet
- (BOOL)containsActionSheetInStack:(BIPActionSheet *)actionsheet;
每次都可以轻松访问堆栈上的所有action sheets,下面是BIPActionSheetStack全局实例的以下属性
@property (nonatomic, strong) NSMutableArray <BIPActionSheet *> *actionSheets;
以下常量用于BIPActionSheet库的UI自定义,如图所示:您可以根据项目的需要更改它们。
@interface BIPActionSheetConstants : NSObject
extern CGFloat const kBIPActionSheetPaddingOffset;
extern CGFloat const kBIPActionSheetPaddingOffsetiPAD;
extern CGFloat const kBIPActionSheetBackgroundAlpha;
extern CGFloat const kBIPActionSheetShowAnimationDuration;
extern CGFloat const kBIPActionSheetHideAnimationDuration;
extern CGFloat const kBIPActionSheetRowHeight;
@end
有关更多信息,请查看演示应用程序。
有两种方法可以在项目中使用BIPActionSheet
platform :ios, '8.0'
use_frameworks!
pod 'BIPActionSheet', '~> 1.0.0'
此库需要iOS 7.0或更高版本的部署目标。
对于任何类型的问题,您可以轻松访问
BIPActionSheet可在MIT许可证下使用。有关更多信息,请参阅LICENSE文件。