iOS - 评价星级
2020-08-06 本文已影响0人
Joh蜗牛
1.通过xib布局,添加五个按钮,并设置tag值:

2.关联属性,将五个按钮放入同个数组中:
@property (nonatomic, strong) IBOutletCollection(UIButton) NSArray *starAry;
3.按钮添加点击事件:
- (IBAction)starAction:(UIButton *)sender {
// 有星星
UIImage *starImg = [UIImage imageNamed:@"star"];
// 无星星
UIImage *noStarImg = [UIImage imageNamed:@"noStar"];
// 默认全为无星星
for (UIButton *starBtn in self.starAry) {
[starBtn setImage:noStarImg forState:0];
}
// 取当前点击星星及前面的星星,置为有星星
NSInteger tag = sender.tag / 100 - 1;
for (int i = 0; i < tag + 1; i++) {
UIButton *starBtn = self.starAry[I];
[starBtn setImage:starImg forState:0];
}
NSArray *starStrAry = @[@"非常不满",@"不满意",@"一般",@"满意",@"非常满意"];
if (starStrAry.count > tag) {
self.starLabel.text = starStrAry[tag];
}
// 获取当前评星级数
if (self.delegate && [self.delegate respondsToSelector:@selector(getStar:)]) {
[self.delegate getStar:tag + 1];
}
}