美文网首页
星级评分显示

星级评分显示

作者: Drodly | 来源:发表于2016-12-29 10:00 被阅读0次
首先创建一个StarView
#import "StarView.h"

@implementation StarView
{
    UIImageView * _foregroundImageView;// 前景图
    UIImageView * _backgroundImageView; // 背景图
}

// 创建视图
- (void)createViews
{
    _backgroundImageView = [[UIImageView alloc] init];
    [self addSubview:_backgroundImageView];
    // 自动布局
    _backgroundImageView.translatesAutoresizingMaskIntoConstraints = NO;
    [_backgroundImageView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.left.equalTo(self);
        make.top.equalTo(self);
        make.width.equalTo(@46);
        make.height.equalTo(@12);
    }];
    // 设置背景图属性
    _backgroundImageView.image = [UIImage imageNamed:@"star_gray"];
    // 设置图片显示模式
    _backgroundImageView.contentMode = UIViewContentModeLeft;
    
    // 前景图
    _foregroundImageView = [[UIImageView alloc]
                            initWithImage:[UIImage imageNamed:@"star_hight"]];
    [self addSubview:_foregroundImageView];
    [_foregroundImageView mas_makeConstraints:^(MASConstraintMaker *make) {
        make.edges.equalTo(_backgroundImageView);
    }];
    // 设置图片显示模式
    _foregroundImageView.contentMode = UIViewContentModeLeft;
    // 裁剪
    _foregroundImageView.clipsToBounds = YES;
}

// 重写init方法
- (instancetype)initWithFrame:(CGRect)frame
{
    if (self = [super initWithFrame:frame]) {
        [self createViews];
    }
    return self;
}

// 当在Xib或者Storyboard中关联类时,程序从xib或者storyboard创建对象时,会调用该方法
- (instancetype)initWithCoder:(NSCoder *)aDecoder
{
    if (self = [super initWithCoder:aDecoder]) {
        [self createViews];
    }
    return self;
}
-(void)setStarValue:(CGFloat)starValue
{
    _starValue = starValue;
    if (_starValue >= 0 && _starValue <= 5)
    {
        // 重建约束
        [_foregroundImageView mas_remakeConstraints:^(MASConstraintMaker *make) {
            make.left.equalTo(_backgroundImageView);
            make.top.equalTo(_backgroundImageView);
            make.height.equalTo(_backgroundImageView);
            make.width.equalTo(_backgroundImageView).multipliedBy(_starValue/5);
        }];
    }
    
//    NSLog(@"starValue is %0.1f",_starValue/5);
}

#import <UIKit/UIKit.h>

@interface StarView : UIView

@property (nonatomic, assign) CGFloat starValue; // 星标的值
@end
最后在要显示星级评价的界面将其带入
/**星级*/
    // 设置星标的值
    self.calenderStartView.starValue =[_calendarModel.star floatValue];

最后来一张显示图

IMG_1688.PNG

相关文章

  • 星级评分显示

    首先创建一个StarView 最后在要显示星级评价的界面将其带入 最后来一张显示图

  • SwiftUI实战-显示星级评分

    显示星级评分 效果图: 相关源码:StarRatingView.swift

  • 星级评分

    一、背景 许多App都会有评价功能,这个时候或许会需要实现星级评分,下面我们来简单的实现一个星级评分功能。 二、简...

  • Flutter-五角星评分组件

    评分展示: 我们需要根据不同的评分显示不同的星级展示,这里我封装了一个XFStarRating的小Widget来实...

  • 星级评分条,不用ratingbar

    星级评分条,不用ratingbar# 使用seekbar 说起星级评分,最先想到的就是ratingbar...但是...

  • iOS开发-自定制星级评价StarView

    前言:众所周知,在大多数的评价界面都会包含一个星级的选择,有时还会显示不同星级对应的评分内容。今天,小编就来给大家...

  • 星级评分条

    XML属性 1.android:isIndicator 是否允许改变,true为步允许2.android:n...

  • 星级评分StarScoreDemo

    今天做了一个点击/拖动小星星评分功能的控件,效果如下: 支持点击和滑动 原理简介:一.使用了UIControl控件...

  • Flutter Ui 实验室(四)星级评分

    QQ群里有人问下面这种星级评分怎么做? 关键就是使用 Stack和ClipRect配合来显示 使用Stack来重叠...

  • Excel根据数据进行“星级评分”也可以很有趣【D15-2020

    今日学习来源:微信公众号“Excel学习营” 今日学习内容:Excel星级评分 根据数值进行星级评分,让数据更直观...

网友评论

      本文标题:星级评分显示

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