iOS 本身的 ActionSheet 比較單一,很多時(shí)候滿足不了需求,所以很多封裝就出現(xiàn)了,百家爭(zhēng)鳴,各有一長(zhǎng),沒有最好,只有更好.給大家安利一個(gè)比較實(shí)用的項(xiàng)目--這個(gè)項(xiàng)目原本是Xib 版本 MHActionSheet,后來在 code4App上面找不到這個(gè)項(xiàng)目了,從一個(gè)老項(xiàng)目中它找了出來,自己用的時(shí)候又寫了一個(gè)純代碼版本的,狗尾續(xù)貂,拋磚引玉,在項(xiàng)目里還有原先的 MHActionSheet, 喜歡用哪個(gè)用哪個(gè).--https://github.com/ssj1314/SJActionSheetOC,只需要傳入一組數(shù)組即可實(shí)現(xiàn).顯示風(fēng)格可高度自定義,可滿足特定情況下的需求.

1.環(huán)境要求
- iOS 7.0+
- Xcode 7.0+
- Objective-C
2.介紹
- 代理回調(diào)
- 文字顏色可自定義
- 初始化簡(jiǎn)單
- 集成方便
-不支持橫屏-轉(zhuǎn)屏
3.使用方法
1.導(dǎo)入頭文件,#import "SJActionSheet.h"
2.初始化--一行代碼搞定,傳入一個(gè)數(shù)組即可,可以傳入標(biāo)題.回調(diào)的 block 包含選中的 index 和 title.
SJActionSheet *actionSheet = [[SJActionSheet alloc] initSheetWithTitle:nil style:SJSheetStyleDefault itemTitles:@[@"頭等艙",@"商務(wù)艙",@"經(jīng)濟(jì)艙",@"不限"]];
__weak typeof(self) weakSelf = self;
[actionSheet didFinishSelectIndex:^(NSInteger index, NSString *title) {
NSString *text = [NSString stringWithFormat:@"第%ld行,%@",index, title];
[weakSelf.selectSource replaceObjectAtIndex:indexPath.row withObject:text];
[weakSelf.tableView reloadData];
}];
4.一共三種樣式,默認(rèn)類似系統(tǒng)風(fēng)格,微信風(fēng)格,表格風(fēng)格
typedef NS_ENUM(NSInteger, SJSheetStyle)
{
/** 默認(rèn)的樣式/
SJSheetStyleDefault = 0,
/* 微博,微信樣式/
SJSheetStyleWeiChat,
/* tableView 樣式 (無取消按鈕)*/
SJSheetStyleTable,
};
每種風(fēng)格都能自定義樣式,
//標(biāo)題顏色,默認(rèn)是 darkGaryColor
@property (nonatomic,strong)UIColor *titleTextColor;
//item 字體顏色,默認(rèn)是 blueColor
@property (nonatomic,strong)UIColor *itemTextColor;
//取消字體顏色,默認(rèn)是 blueColor
@property (nonatomic,strong)UIColor *cancleTextColor;
//標(biāo)題文字字體
@property (nonatomic,strong)UIFont *titleTextFont;
//item 文字字體
@property (nonatomic,strong)UIFont *itemTextFont;
//取消按鈕字體
@property (nonatomic,strong)UIFont *cancelTextFont;
//取消按鈕文字設(shè)置,默認(rèn)是"取消"
@property (nonatomic,copy)NSString *cancelTitle;
//是否統(tǒng)一處理取消按鈕事件
@property (nonatomic,assign)BOOL isUnifyCancelAction;
5.代理方法- 一個(gè)初始化,一個(gè)代理回調(diào)
//初始化方法, title不傳則不顯示, tableView 當(dāng) item 顯示不完的時(shí)候可以滑動(dòng), style 默認(rèn)是 UIActionSheet 樣式
- (id)initSheetWithTitle:(NSString *)title
style:(SJSheetStyle)style
itemTitles:(NSArray *)itemTitles;
//回調(diào) block 中包含選中的 index 和 title -- 也可實(shí)現(xiàn)代理方法獲取選中的數(shù)據(jù)
- (void)didFinishSelectIndex:(SelectIndexBlock)block;
6.根據(jù)需求可自己改變
改變可在-- SJActionSheet.m 中進(jìn)行,根據(jù)項(xiàng)目需求,進(jìn)行定制.