话不多说,先上效果图:
下面是这个库中一些参数的具体含义:
这部分直接copy的这里,懒得写了:https://my.oschina.net/u/2340880/blog/706851
这里是这我这个demo的具体git地址(国内的码云,国外太慢,方便大家):https://gitee.com/YouCaiHuaHH/HCSStarRatingViewDemo.git
//设置最大值
@property (nonatomic) IBInspectable NSUInteger maximumValue;
//设置最小值
@property (nonatomic) IBInspectable CGFloat minimumValue;
//星级视图当前值
@property (nonatomic) IBInspectable CGFloat value;
//星星间间距
@property (nonatomic) IBInspectable CGFloat spacing;
//是否允许选择半星
@property (nonatomic) IBInspectable BOOL allowsHalfStars;
//是否是否允许精确选择 可以根据选择位置进行精确
@property (nonatomic) IBInspectable BOOL accurateHalfStars;
//是否连续调用回调方法 如果设置为YES 则在手指拖动时 会持续调用回调方法 如果设置为NO,则只有拖动结束后才调用回调
@property (nonatomic) IBInspectable BOOL continuous;
//是否允许成为第一响应
@property (nonatomic) BOOL shouldBecomeFirstResponder;
//添加手势时使用
@property (nonatomic, copy) HCSStarRatingViewShouldBeginGestureRecognizerBlock shouldBeginGestureRecognizerBlock;
//自定义星星视图UI
//设置空星的图片
@property (nonatomic, strong) IBInspectable UIImage *emptyStarImage;
//设置半星的图片
@property (nonatomic, strong) IBInspectable UIImage *halfStarImage;
//设置全星时的图片
@property (nonatomic, strong) IBInspectable UIImage *filledStarImage;
下面是具体的代码(直接整个复制进来的,都是很明显的代码,应该都能看得懂,注释都写清楚了,复制的是.m文件):
#import "ViewController.h"
#import <HCSStarRatingView.h>
@interface ViewController ()
/**
最大
*/
@property (weak, nonatomic) IBOutlet UITextField *max;
/**
最小
*/
@property (weak, nonatomic) IBOutlet UITextField *min;
/**
当前
*/
@property (weak, nonatomic) IBOutlet UITextField *currentValue;
/**
是否允许半颗星
*/
@property (weak, nonatomic) IBOutlet UITextField *isAllowHalf;
/**
边框颜色
*/
@property (weak, nonatomic) IBOutlet UISlider *borderColor;
/**
边框宽度
*/
@property (weak, nonatomic) IBOutlet UITextField *borderWidth;
/**
空星星颜色
*/
@property (weak, nonatomic) IBOutlet UISlider *emptyColor;
/**
容器view
*/
@property (weak, nonatomic) IBOutlet UIView *containerView;
@property (nonatomic,strong)HCSStarRatingView *starView;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
[self initHCSStarView];
// Do any additional setup after loading the view, typically from a nib.
}
- (void)initHCSStarView{
self.starView = [[HCSStarRatingView alloc]initWithFrame:CGRectMake(0, 400, [UIScreen mainScreen].bounds.size.width, 200)];
//设置初始值
// self.starView.maximumValue = 5;
// self.starView.minimumValue = 0;
// self.starView.backgroundColor = [UIColor redColor];
[self.containerView addSubview:self.starView];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
/**
最大确定
@param sender <#sender description#>
*/
- (IBAction)maxConfirm:(id)sender {
_starView.maximumValue = [_max.text integerValue];
NSLog(@"%@",_starView);
}
/**
最小确定
@param sender <#sender description#>
*/
- (IBAction)minConfirm:(id)sender {
_starView.minimumValue = [_min.text integerValue];
}
/**
当前值确定
*/
- (IBAction)currentConfirm:(id)sender {
_starView.value = [_currentValue.text floatValue];
}
/**
半颗星确定
@param sender <#sender description#>
*/
- (IBAction)halfStar:(id)sender {
_starView.allowsHalfStars = [self.isAllowHalf.text boolValue];
}
/**
边框颜色
@param sender <#sender description#>
*/
- (IBAction)borderColor:(id)sender {
_starView.starBorderColor = [UIColor colorWithRed:1 green:1 blue:_borderColor.value alpha:1];
// NSLog(@"%f",_borderColor.value);
}
/**
边框宽度
@param sender <#sender description#>
*/
- (IBAction)borderWidth:(id)sender {
_starView.starBorderWidth = [_borderWidth.text floatValue];
}
/**
空星星颜色
@param sender <#sender description#>
*/
- (IBAction)emptyStarColor:(id)sender {
_starView.emptyStarColor = [UIColor colorWithRed:1 green:1 blue:_emptyColor.value alpha:1];
}
/**
当前星星颜色
@param sender <#sender description#>
*/
- (IBAction)currentStarColor:(id)sender {
UISlider *slider = (UISlider *)sender;
_starView.tintColor = [UIColor colorWithRed:0.5 green:0.5 blue:slider.value alpha:1];
[self.view setNeedsLayout];
NSLog(@"%f",slider.value);
}
- (IBAction)starSpaceing:(UISlider *)sender {
_starView.spacing = sender.value*30;
}
@end