iOS- 懶人封裝 ActionSheet 之 SJActionSheet

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)格可高度自定義,可滿足特定情況下的需求.
SJActionSheet.gif
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)行定制.

沒錯(cuò),就這么簡(jiǎn)單, GitHub 地址 https://github.com/ssj1314/SJActionSheetOC,請(qǐng)給出意見,謝謝啦

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容