iOS 評價(jià)標(biāo)簽自適應(yīng) 評價(jià)星級

XFDesignEvaluate

自定義評價(jià)界面 星級 標(biāo)簽自適應(yīng)

希望喜歡的話炼绘,GitHub上下載demo珊燎,麻煩star一下檬贰,不勝感激9昧!翁涤!
個(gè)人GitHub的demo鏈接:https://github.com/FreeSnow520/XFDesignEvaluate

1.自定義評價(jià)界面 星級 標(biāo)簽自適應(yīng)評價(jià) 星星 點(diǎn)擊之后聯(lián)動標(biāo)簽;

2.標(biāo)簽自適應(yīng) 標(biāo)簽換行 創(chuàng)建標(biāo)簽之后可生成自適應(yīng)的View:

1).修改顏色大小等更多屬性等你自定義;

2).可默認(rèn)選擇 默認(rèn)標(biāo)簽的選擇 是數(shù)組 只要傳入對應(yīng)標(biāo)簽的下標(biāo)即可默認(rèn)選中;

3).可單選可多選或不可選;

4).標(biāo)題重置桥言。

項(xiàng)目中要寫評價(jià) 然后覺得這玩意碰到之前也寫過萌踱,每次都重新搞 感覺很費(fèi)勁 所以為了為自己鋪好路,干脆寫了個(gè)小東西封裝一下号阿。

對于這個(gè)小封裝并鸵,里面代碼并沒有什么深奧的東西, 自認(rèn)為能力有限 扔涧,以后的道路漫長园担,望各位大佬看過之后輕噴。

那好枯夜, 現(xiàn)在我們來看看我寫的這個(gè)小控件 到底怎么用弯汰,有哪些功能

1.自定義的星級評價(jià)

這個(gè)功能相對簡單: 單選模式、多選模式湖雹、 可自由設(shè)置的有整個(gè)view的左右間距咏闪、中間按鈕的間距 、圖片顏色等摔吏。

2.自定義的可高度的自適應(yīng)的標(biāo)簽:主要功能根據(jù)標(biāo)簽的寬度自動換行鸽嫂、單選模式、多選模式征讲、可取消可酸中据某、設(shè)置多個(gè)默認(rèn)選擇標(biāo)簽、可自由設(shè)置的選中和未選中的 button文字距button自己邊界左右間距诗箍、上下間距癣籽;button間間距;button圖片顏色扳还,border寬度和顏色等諸多屬性才避。

自定義評價(jià)界面:

imageExmp.gif

/**
所選信息 單選
*/

@property (nonatomic, copy) void (^infoButton)(XFEvaluateRank * button); /**< 完成回調(diào)信息 */

@property (nonatomic, copy) NSArray <NSArray > imgArr; /**< 圖片 */

@property (nonatomic, assign) BOOL isSingleSelected; /**< 默認(rèn)為開啟單選(YES) NO為選擇本身及之前所有 */

-(void)addSubButtons;/**< 添加buttons 5 需要放在屬性設(shè)置之后 */

#pragma mark - 單獨(dú)評價(jià)星級

//初始化, 高度可自定義 距離左右邊界默認(rèn)值自定義PrefixHeader文件中
XFEvaluateView * evaView = [[XFEvaluateView alloc] initWithFrame:CGRectMake(0, 53.5 - 7.5, [UIScreen mainScreen].bounds.size.width, 50)];
evaView.isSingleSelected = YES;

__weak typeof(self) weakSelf = self;
evaView.infoButton = ^(XFEvaluateRank *button) {
[weakSelf updateUIButton:button];
};

//放在設(shè)置屬性和block 之后
[evaView addSubButtons];
[self addSubview:evaView];

自定義標(biāo)簽:

imageExmp2.gif

/**
關(guān)于button的參數(shù)設(shè)置 這個(gè)需要寫在 XFTagsView

btnDistance 按鈕間隙

btnTopDistance 按鈕上下

btnWidth 按鈕初始寬度

btnHeight 按鈕初始高度

.....

*/

@property (nonatomic, assign) CGFloat btnDistance; /**< 按鈕間 間隙 */

@property (nonatomic, assign) CGFloat btnTopDistance; /**< 按鈕上下 間隙 */

@property (nonatomic, assign) CGFloat btnWidth; /**< 按鈕初始寬度 */

@property (nonatomic, assign) CGFloat btnHeight; /**< 按鈕初始高度 */

@property (nonatomic, strong) UIColor unselectTitleColor; /*< 未選中時(shí)按鈕顏色 */

@property (nonatomic, strong) UIColor selectTitleColor; /*< 選中時(shí)按鈕顏色 */

@property (nonatomic, strong) UIColor selectborderColor; /*< 選中時(shí)邊框顏色 */

@property (nonatomic, strong) UIColor unselectborderColor; /*< 未選中時(shí)邊框顏色 */

@property (nonatomic, strong) UIColor selectBgColor; /*< 選中背景顏色 */

@property (nonatomic, strong) UIColor unselectBgColor; /*< 未選中背景顏色 */

@property (nonatomic, assign) CGFloat borderWidth; /**< 邊框?qū)挾?*/

@property (nonatomic, strong) UIFont titleLabelFont;/*< 字體大小 */

@property (nonatomic, assign) BOOL isSingleSelected; /**< 默認(rèn)為多選(default is NO) NO為選擇本身及之前 */

@property (nonatomic, strong) void (^infoButtonBlock)(UIButton * button); /**< 回傳帶有信息的button */

/**

初始化標(biāo)簽

這個(gè)方法需要你放在

所有屬性都設(shè)置完成之后

去使用

@param tagTitles 標(biāo)簽數(shù)組

@param isEnable 按鈕是否可點(diǎn)擊 (default is YES 可點(diǎn)擊)

*/

  • (void)initButtonWith:(NSArray *)tagTitles isEnable:(BOOL)isEnable;

/**

初始化后 設(shè)置button選中狀態(tài) (無觸發(fā)無回調(diào))

isSingleSelected 屬性開啟 則為單選 默認(rèn)設(shè)置下標(biāo)最后一個(gè)為選中狀態(tài)

@param tagIndex 每個(gè)標(biāo)簽對應(yīng)的下標(biāo)數(shù)組[@"0",@"1",...]

*/

  • (void)reSetButtonSelectStatus:(NSArray *)tagIndex;
#pragma mark - 單獨(dú)標(biāo)簽自適應(yīng)
//初始化
self.xfTagsView = [[XFTagsView alloc] initWithFrame:CGRectMake(0, 132 - 10, [UIScreen mainScreen].bounds.size.width, 100)];
__weak XFCustomEView * weakSelf = self;
self.xfTagsView.infoButtonBlock = ^(UIButton *button) {
//存入tag 方便獲取外部對應(yīng)數(shù)據(jù)
//doSomething coding
}

/*中間增加屬性 如 @property (nonatomic, strong) UIColor *unselectTitleColor; /**< 未選中時(shí)按鈕顏色 */
@property (nonatomic, strong) UIColor *selectTitleColor; /**< 選中時(shí)按鈕顏色 */
@property (nonatomic, strong) UIColor *selectborderColor; /**< 選中時(shí)邊框顏色 */
@property (nonatomic, strong) UIColor *unselectborderColor; /**< 未選中時(shí)邊框顏色 */
修改顏色大小等更多屬性等你自定義
*/

[self.xfTagsView initButtonWith:_titlesArr isEnable:YES];//一切屬性的定義都需要放在這個(gè)方法之前
[self addSubview:self.xfTagsView];

自定義星級評價(jià)帶標(biāo)簽:

imageExmp.gif

@property (nonatomic, copy) void (^refreshView)(XFEvaluateRank button); /*< 更新 */

@property (nonatomic, strong) NSMutableArray * resultArray;
/**< 只存 評價(jià)級別 評價(jià)狀態(tài) 評價(jià)標(biāo)簽 最終要的結(jié)果例:@[ @"1" @"很

好" @[標(biāo)簽數(shù)組標(biāo)簽的下標(biāo)0氨距,1...] ]*/

@property (nonatomic, copy) NSArray * titlesArr; /**< 標(biāo)簽數(shù)組 */

/**
如果選擇并且數(shù)目大于0則顯示標(biāo)簽 當(dāng)選擇星級之后執(zhí)行方法 動態(tài)改變視圖
*/

  • (void)addDymView;
#pragma mark - 星級和自適應(yīng)標(biāo)簽

@property (nonatomic, strong) NSMutableArray <NSMutableArray *>* tagNameArray; /**< 標(biāo)簽名字?jǐn)?shù)組 */

_tagNameArray = [[NSMutableArray alloc] init];
[_tagArray addObjectsFromArray:@[[[NSMutableArray alloc] initWithArray:@[@"愛情", @"不是", @"一個(gè)糖"]],
[[NSMutableArray alloc] initWithArray:@[@"愛情", @"不是", @"一杯水"]],
[[NSMutableArray alloc] initWithArray:@[@"愛情", @"更不是", @"不是簡簡單單的甜言蜜語"]],
[[NSMutableArray alloc] initWithArray:@[@"愛情", @"而是", @"萬里挑一的靈魂碰撞", @"有趣的靈魂總是俺么萬里挑一"]],
[[NSMutableArray alloc] initWithArray:@[@"我們", @"遇見", @"即珍惜"]]]];

//初始化
self.evalueTopBgView = [[XFCustomEView alloc] init];
self.evalueTopBgView.titlesArr = self.tagNameArray[0];
__weak typeof(self) weakSelf = self;
self.evalueTopBgView.refreshView = ^(XFEvaluateRank *button) {
weakSelf.evalueTopBgView.titlesArr = weakSelf.tagNameArray[(int)button.tag - 100];
//動態(tài)修改
[weakSelf.evalueTopBgView addDymView];
};
[self.view addSubview:self.evalueTopBgView];

喜歡的話麻煩收藏一下文章桑逝,或者關(guān)注一波,不勝感激G稳谩@愣簟!
希望喜歡的話首昔,GitHub上下載demo寡喝,麻煩star一下,不勝感激@掌妗T蕖!
個(gè)人GitHub的demo鏈接:https://github.com/FreeSnow520/XFDesignEvaluate

如有疑問和建議可簡書或者GitHub留言 我會有時(shí)間來看赊颠。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末格二,一起剝皮案震驚了整個(gè)濱河市劈彪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌顶猜,老刑警劉巖沧奴,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異长窄,居然都是意外死亡滔吠,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進(jìn)店門挠日,熙熙樓的掌柜王于貴愁眉苦臉地迎上來疮绷,“玉大人,你說我怎么就攤上這事肆资〈@ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵郑原,是天一觀的道長。 經(jīng)常有香客問我夜涕,道長犯犁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任女器,我火速辦了婚禮酸役,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘驾胆。我一直安慰自己涣澡,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布丧诺。 她就那樣靜靜地躺著入桂,像睡著了一般。 火紅的嫁衣襯著肌膚如雪驳阎。 梳的紋絲不亂的頭發(fā)上抗愁,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天,我揣著相機(jī)與錄音呵晚,去河邊找鬼蜘腌。 笑死,一個(gè)胖子當(dāng)著我的面吹牛饵隙,可吹牛的內(nèi)容都是我干的撮珠。 我是一名探鬼主播,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼金矛,長吁一口氣:“原來是場噩夢啊……” “哼芯急!你這毒婦竟也來了勺届?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤志于,失蹤者是張志新(化名)和其女友劉穎涮因,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體伺绽,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡养泡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了奈应。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片澜掩。...
    茶點(diǎn)故事閱讀 39,731評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖杖挣,靈堂內(nèi)的尸體忽然破棺而出肩榕,到底是詐尸還是另有隱情,我是刑警寧澤惩妇,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布株汉,位于F島的核電站,受9級特大地震影響歌殃,放射性物質(zhì)發(fā)生泄漏趁怔。R本人自食惡果不足惜庐舟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一匈子、第九天 我趴在偏房一處隱蔽的房頂上張望续室。 院中可真熱鬧,春花似錦波材、人聲如沸股淡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽唯灵。三九已至,卻和暖如春躲因,著一層夾襖步出監(jiān)牢的瞬間早敬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工大脉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留搞监,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓镰矿,卻偏偏與公主長得像琐驴,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評論 2 354

推薦閱讀更多精彩內(nèi)容