最近在做的項(xiàng)目中涉及到了用戶評(píng)分,用到的是類似淘寶的那種五星好評(píng),就是點(diǎn)擊第幾個(gè)星星就亮幾顆星星。
我沒(méi)有用第三方,都是自己寫的邏輯算法,因?yàn)樽罱臻e時(shí)間太少還沒(méi)來(lái)得及進(jìn)行封裝,也可能是因?yàn)樘珣辛?。。。哈哈~~
====上代碼===============
NSArray * feelTitArr = @[@"中文服務(wù)",@"醫(yī)院環(huán)境",@"治療滿意度"];
for (int i =0; i<3; i++) {
UILabel * feelTitLable = [[UILabel alloc]initWithFrame:CGRectMake(10, 50+50*i, 100, 50)];
feelTitLable . textColor = THREE_COLOR;
feelTitLable . font = [UIFont systemFontOfSize:13];
feelTitLable . text = feelTitArr[i];
[self . view addSubview:feelTitLable];
UIView * lineView = [[UIView alloc]initWithFrame:CGRectMake(0, 50*i+50, SCREEN_WIDTH, 1)];
lineView . backgroundColor = LINE_COLOR;
[self . view addSubview:lineView];
for (int j=0; j<5; j++) {
UIButton * xingBtn = [UIButton buttonWithType:UIButtonTypeCustom];
xingBtn . frame = CGRectMake(SCREEN_WIDTH-140+(20+5)*j, 65+50*i, 20, 20);
[xingBtn setBackgroundImage:[UIImage imageNamed:@"guanzhu1@2x"] forState:UIControlStateNormal];
xingBtn . tag = i*100+j;
[xingBtn addTarget:self action:@selector(xingBtnClick:) forControlEvents:UIControlEventTouchUpInside];
[self . view addSubview:xingBtn];
[xingBtnArr addObject:xingBtn];
}
}
//------->>星星按鈕的點(diǎn)擊方法
-(void)xingBtnClick:(UIButton*)sender
{
/**
sender . tag/100(取商為第幾行)? sender . tag%100(取余為第幾列)
*/
for (UIButton * button in xingBtnArr) {
if (button . tag%100<=sender.tag%100 && button .tag/100 ==sender.tag/100) {
[button setBackgroundImage:[UIImage imageNamed:@"guanzhu2@2x"] forState:UIControlStateNormal];
}else if (button .tag/100 ==sender.tag/100){
[button setBackgroundImage:[UIImage imageNamed:@"guanzhu1@2x"] forState:UIControlStateNormal];
}
}
//記錄用戶對(duì)不同感受的評(píng)價(jià)星星數(shù)量
if (sender.tag/100==0) {
manYiDu_Num = sender . tag%100;
}else if (sender.tag/100==1){
zhongZhangDu_Num = sender . tag%100;
}else{
baHenDu_Num = sender . tag%100;
}
}
ok 就是這么簡(jiǎn)單粗暴,我就喜歡這個(gè)樣子。。。
最后給大家上一張效果圖以便可以直觀的看到效果知道是否是自己需要的東東!?。?!


!!?。。。。。。。。?lt;以大大的嘆號(hào)結(jié)尾?。?!>