美文网首页
iOS第三方星级视图控件——HCSStarRatingView

iOS第三方星级视图控件——HCSStarRatingView

作者: 油菜花花花花 | 来源:发表于2017-10-23 15:30 被阅读0次

话不多说,先上效果图:

效果图.gif

下面是这个库中一些参数的具体含义:
这部分直接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

相关文章

网友评论

      本文标题: iOS第三方星级视图控件——HCSStarRatingView

      本文链接:https://www.haomeiwen.com/subject/uhdauxtx.html