zoukankan      html  css  js  c++  java
  • iOS 设计中-- 自定义-- 评星图标的方法

    效果图:
     
     
                    
     
    代码实现如下:
    调用部分:
     
    MoreViewController.m
    
    #import "MoreViewController.h"
    #import "WXRatingView.h"//导入自定义星星类头文件
    @interface MoreViewController ()
    
    @end
    
    @implementation MoreViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
            //标题
        self.title = @"更多";
            //背景色
        self.view.backgroundColor = [UIColor purpleColor];
               //创建星星的类对象
        WXRatingView *ratingView = [[WXRatingView alloc] initWithFrame:CGRectMake(10, 100, 300, 50)];
              //星星背景色
        ratingView.backgroundColor = [UIColor greenColor];
              //评星分数
        ratingView.scoreNum = 5;
              // 添加到视图
        [self.view addSubview:ratingView];
        // Do any additional setup after loading the view.
    }
    自定义部分:
     WXRatingView.h
    
    #import <UIKit/UIKit.h>
    
    @interface WXRatingView : UIView
    //2中颜色的星星属性(灰色,黄色,)
    @property(strong,nonatomic)UIView *grayView;
    @property(strong,nonatomic) UIView *yellowView;
    //显示评星分数的文本框
    @property(strong,nonatomic) UILabel *scoreLabel;
    
    @property (nonatomic ,assign) float scoreNum;//评星分数
    @end
    
    WXRatingView.m
    
    
    #import "WXRatingView.h"
    
    #define star_width 35
    #define star_height 34
    
    @implementation WXRatingView
    
    - (instancetype)initWithFrame:(CGRect)frame
    {
        self = [super initWithFrame:frame];
        if (self) {
            // 创建子视图
            [self initViews];
        }
        return self;
    }
    
    // 创建子视图
    - (void)initViews
    {
        // 1.创建灰色星星视图
        self.grayView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, star_width * 5, star_height)];
        // 设置背景图片
       self.grayView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"gray.png"]];
        // 设置星星视图的大小
        float scale = (self.height / 2.0) /star_height;
        self.grayView.transform = CGAffineTransformMakeScale(scale, scale);
        // 设置位置
       self.grayView.left = 0;
       self.grayView.top = self.height * .25;
        
        [self addSubview:self.grayView];
        
        // 2.创建黄色星星视图
        self.yellowView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, star_width * 5, star_height)];
        // 设置背景图片
        self.yellowView.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"yellow.png"]];
        // 设置星星视图的大小
        self.yellowView.transform = CGAffineTransformMakeScale(scale, scale);
        // 设置位置
       self.yellowView.left = 0;
       self.yellowView.top = self.height * .25;
        
        [self addSubview:self.yellowView];
        
        // 3.创建分数文本视图
        self.scoreLabel = [[UILabel alloc] initWithFrame:CGRectMake(_grayView.right + 10, 0, 50, self.height)];
        self.scoreLabel.textColor = [UIColor orangeColor];
        // 设置字体的大小
       self.scoreLabel.font = [UIFont boldSystemFontOfSize:self.height * .5];
        [self addSubview:self.scoreLabel];
    }
    
    // 重写分数的set:
    - (void)setScoreNum:(float)scoreNum
    {
        if (self.scoreNum != scoreNum) {
            _scoreNum = scoreNum;//此处不能用属性 ,因为为set方法
            
            // 改变黄色星星视图的宽度
            self.yellowView.width =  self.grayView.width * _scoreNum * .1;
            // 设置文本
           self.scoreLabel.text = [NSString stringWithFormat:@"%.1f", self.scoreNum];
        }
    
    }
     
  • 相关阅读:
    新能源汽车三大核心技术
    新能源汽车分类解读
    hadoop(四):配置参数
    HDP2.4安装(六):小结与回顾
    【Web】Nginx配置开机启动
    【Linux】ODBC安装
    【Erlang】源码安装
    【Linux】 Ncures库的介绍与安装
    【RabbitMQ】 RabbitMQ安装
    《MinDoc 接口文档在线管理系统》
  • 原文地址:https://www.cnblogs.com/guiyangxueyuan/p/5370148.html
Copyright © 2011-2022 走看看