最近產(chǎn)品大大要求個(gè)功能是要計(jì)算顯示用戶的等級(jí) 在網(wǎng)上找了找好多都感覺好復(fù)雜 然后我們大神整出了一個(gè)種方案身為渣渣的我頓時(shí)茅舍頓開 下面我說說大致的思路哈 ?不對(duì)的請(qǐng)大家指出來哈(大神請(qǐng)繞道)
先把效果圖整出來
創(chuàng)建一個(gè)數(shù)組來接收名稱
_LevelNameList = @[@"5塊",@"10塊",@"15塊",@"20塊",@"25塊",@"30塊",@"35塊",@"40塊",@"45塊"];
接下來處理下簡(jiǎn)單的邏輯
創(chuàng)建一個(gè)變量來控制等級(jí)
int level = 0;
if (level < 1) {
? ? ? ? level = 1;
? ? }
? ? if (level > 9) {
? ? ? ? level = 9;
? ? }
在創(chuàng)建一個(gè)int變量來控制按鈕的變化 我以3個(gè)為一個(gè)等級(jí)
int index = 0;
? ? if (level < 3) {
? ? ? ? index = 0;
? ? }else if (level>7){
?????????index = level - (5 - (9 - level));
? ? }else{
? ? ? ? index = level - 2 - 1;
? ? }
然后遍歷所需要的按鈕
NSArray * buttonArray = @[_button1,_button2,_button3,_button4,_button5];
for (int i = index; i<index+5; i++) {
? ? ? ? NSString *title = _LevelNameList[i];
? ? ? ? UIButton * button = buttonArray[i - index];
? ? ? ? [button setTitle:title forState:UIControlStateNormal];
? ? ? ? if (i < level) {
? ? ? ? ? ? [button setTitleColor:[UIColor whiteColor] forState:UIControlStateNormal];
? ? ? ? }
? ? }
//獲取出需要變換的btn的寬
double width = 33.5f + 71.5 * (level - 1 - index);
? ? if (level == 9) {
? ? ? ? width = 33.5f + 71.5 * (level - 1 - index) + 33.5f;
? ?}
UIImage *image = [UIImage imageNamed:@"userlevel_levelline_yellow"];
? ? image = [self ct_imageFromImage:image inRect:CGRectMake(0, 0, width, image.size.height)];
? ? _imageView_Line.image = image;
? ? if (level == 9) {
? ? ? ? width = kScreenWidth / 375 * 345;
? ? } else {
? ? ? ? width = 33.5f * (kScreenWidth / 375) + 71.5 * (level - 1 - index) * (kScreenWidth / 375);
? ? }
? ? _constraint_LineWidth.constant = width;
打完收工