最近項(xiàng)目中遇到很多需要輸入的ListView 30-40 界面需要兩三天完成 所以想到使用plist存儲數(shù)據(jù) 用來快速布局 (各種顯示listView 和個(gè)人中心等)
demo地址 喜歡的話給顆星
/** 判斷cell 后面顯示內(nèi)容 輸入框 按鈕 等*/
@property(assign,nonatomic)ZFShowType type;
/**------- 下面是屬性是對于標(biāo)題的 ------------ */
/** 圖片+標(biāo)題 */
@property(copy,nonatomic)NSString *titleImg;
/** 標(biāo)題 */
@property(copy,nonatomic)NSString *title;
/** 是否需要標(biāo)記 * 默認(rèn)NO */
@property(assign,nonatomic)BOOL canTag;
/**------- 下面是屬性是對于單輸入框的 ------------ */
/** textfield placeholder */
@property(copy,nonatomic)NSString *placeholder;
/** textfield 限制輸入多少字?jǐn)?shù) 默認(rèn)不限制輸入*/
@property(assign,nonatomic)NSInteger limitLength;
/** textfield 內(nèi)容 */
@property(copy,nonatomic)NSString *text;
/** 可不可以編輯 默認(rèn) NO */
@property(assign,nonatomic)BOOL canEdit;
/** 是否隱藏箭頭 默認(rèn) NO*/
@property(assign,nonatomic)BOOL canHiddenBack;
/** 鍵盤類型 1 數(shù)字鍵盤 2 身份證 3 */
@property(strong,nonatomic)NSNumber *isBord;
/** 鍵盤類型 */
@property(nonatomic) UIKeyboardType keyboardType;
/** 判斷輸入的提交時(shí)候可不可以為空 */
@property(assign,nonatomic)BOOL canEmpty;
/**------- 下面是屬性是對于開關(guān)的 ------------ */
/** 進(jìn)入默認(rèn)開啟還是關(guān)閉 */
@property(assign,nonatomic)BOOL on;
/**------- 用于多層次列表數(shù)據(jù)傳輸 ------------ */
/** dataArr 用來存儲model 數(shù)據(jù)類型 */
@property(strong,nonatomic)NSArray *dataArr;
/** parmas 用來存儲對應(yīng)數(shù)據(jù)的鍵值對 */
@property(strong,nonatomic)NSDictionary *parmas;
你想要什么cell 必須需要添加type 默認(rèn)可以輸入
typedef NS_ENUM(NSInteger,ZFShowType){
ZFShowTypeInput = 0,//可以輸入一行
ZFShowTypeSwitch,//按鈕
ZFShowTypeInputMore,//輸入多行
};
1.如果需要自定義可以繼承于 ZFBaseTableView 即可
1.1 普通界面布局
plist 文件 配置只需要添加 title 和 text 屬性就行
/** 標(biāo)題 */
@property(copy,nonatomic)NSString *title;
/** textfield 內(nèi)容 */
@property(copy,nonatomic)NSString *text;

2017-12-22 at 13.54.08.png
1.2 title標(biāo)題代圖片的 或是 需要添加標(biāo)記的
plist 文件 配置只需要添加 title 和 text titleImg屬性就行
/** 圖片+標(biāo)題 */
@property(copy,nonatomic)NSString *titleImg;
/** 標(biāo)題 */
@property(copy,nonatomic)NSString *title;
/** textfield 內(nèi)容 */
@property(copy,nonatomic)NSString *text;

Simulator Screen Shot - iPhone X - 2017-12-22 at 13.54.23.png

Simulator Screen Shot - iPhone X - 2017-12-22 at 13.54.34.png
下面是左邊有圖片 有標(biāo)記的
當(dāng)plist文件中不配置text屬性 分組 有尾試圖 等
其中尾試圖可以自己根據(jù)繼承于ZFBaseTableView 修改成自己想要的樣式等

Simulator Screen Shot - iPhone X - 2017-12-22 at 13.54.37.png

Simulator Screen Shot - iPhone X - 2017-12-22 at 13.54.40.png

Simulator Screen Shot - iPhone X - 2017-12-22 at 13.54.43.png
1.3 如果需要可以輸單行輸入需要修改canEdit 這個(gè)屬性變成YES
/** 可不可以編輯 默認(rèn) NO */
@property(assign,nonatomic)BOOL canEdit;
/** 限制輸入多少字?jǐn)?shù) 默認(rèn)不限制輸入*/
@property(assign,nonatomic)NSInteger limitLength;

Simulator Screen Shot - iPhone X - 2017-12-22 at 13.54.58.png

Simulator Screen Shot - iPhone X - 2017-12-22 at 13.56.33.png
1.4 如果需要右邊是按鈕只要需要設(shè)置type =1 和title就可以 也可以在左側(cè)添加標(biāo)記和圖片等
/** 判斷cell 后面顯示內(nèi)容 輸入框 按鈕 等*/
@property(assign,nonatomic)ZFShowType type;
/** 圖片+標(biāo)題 */
@property(copy,nonatomic)NSString *titleImg;
/** 標(biāo)題 */
@property(copy,nonatomic)NSString *title;
/** 是否需要標(biāo)記 * 默認(rèn)NO */
@property(assign,nonatomic)BOOL canTag;

Simulator Screen Shot - iPhone X - 2017-12-22 at 14.01.51.png
1.5 多行輸入只要需要設(shè)置type =2 和title就可以 也可以在左側(cè)添加標(biāo)記和圖片等
/** 判斷cell 后面顯示內(nèi)容 輸入框 按鈕 等*/
@property(assign,nonatomic)ZFShowType type;
/** 圖片+標(biāo)題 */
@property(copy,nonatomic)NSString *titleImg;
/** 標(biāo)題 */
@property(copy,nonatomic)NSString *title;
/** 是否需要標(biāo)記 * 默認(rèn)NO */
@property(assign,nonatomic)BOOL canTag;

Simulator Screen Shot - iPhone X - 2017-12-22 at 14.02.15.png
2.獲取輸入數(shù)據(jù)
在 ZFCustomTools 在這個(gè)工具類中我們可以獲取輸入的數(shù)據(jù) 具體使用可以自己看看demo
/** plist轉(zhuǎn)模型 */
+(NSMutableArray <ZFCustomModel *>*)zf_getDataWithPlist:(NSString *)plist;
/** 根據(jù)indexPath獲取對應(yīng)模型 */
+(ZFDetailCustomModel *)zf_getModelWithArr:(NSArray *)dataArr fromIndexPath:(NSIndexPath *)path;
/** 根據(jù)模型獲取轉(zhuǎn)換數(shù)據(jù) */
+(id)zf_getObjctWithModelArr:(NSArray *)dataArr;
/**
根據(jù)輸入的數(shù)據(jù)獲取輸入數(shù)據(jù) 并且轉(zhuǎn)成對于需要的數(shù)據(jù) key-value
originalArr 存儲是key
一組或多組使用
@[@[string,string,string,string,],@[string,string,string,string,]];
必須一一對應(yīng)才可以
*/
+(NSMutableDictionary *)zf_getObjectWithModelArr:(NSMutableArray *)dataArr WithOriginal:(NSArray *)originalKeys;
/** 根據(jù)輸入數(shù)據(jù) 判斷數(shù)據(jù)能不能為空
調(diào)用方法 [ZFCustomTools zf_changeInputData](NSarray) 返回字典
*/
+(NSDictionary *(^)(NSArray *dataArr))zf_changeInputData;

Simulator Screen Shot - iPhone X - 2017-12-22 at 14.03.07.png