• 使用swift语言封装的星星评分视图


      代码中一些知识点,对于初学swift者,还有研究价值的。只需要传一个NSNumber类型的数据,剩下就不需要问了。看效果图

      当然,如果有兴趣的,可以研究下我的代码,仅仅作为参考。。

    //
    //  RatingView.swift
    //  test-01
    //
    //  Created by Mac on 15/11/25.
    //  Copyright (c) 2015年 ZY. All rights reserved.
    //
    
    import UIKit
    
    class RatingView: UIView {
    
    
        var _rating = NSNumber?()
        var rating:NSNumber{
            
            get{
                
                return self.rating
            }
            
            set{
                
                self._rating = newValue;
                
                var s = _rating?.floatValue
                //数据类型转换
                let sa = (CGFloat)(s!)
                var width1 = self.bounds.size.width * sa/10.0
                if(s < 0){
                    return
                }
                
                
                //从外部改变黄色星星的大小
                yellowView?.frame = CGRectMake(0, 0, width1, self.bounds.size.height)
                
                
            }
            
        }
        
        var yellowView:UIView?
        var grayView:UIView?
        
        
      
    
        override func awakeFromNib() {
            super.awakeFromNib()
            
            self.clipsToBounds = true
            
            self.backgroundColor = UIColor.clearColor()
            //创建灰色星星和黄色星星的图片
            var grayImage = UIImage(named: "gray")
            var yellowimage = UIImage(named: "yellow")
            var width = grayImage?.size.width
            var height = grayImage?.size.height
            //创建盛放星星图片的视图
            grayView = UIView(frame: CGRectMake(0, 0, width!*5, height!))
            
            grayView?.backgroundColor = UIColor(patternImage: grayImage!)
            
            yellowView = UIView(frame: CGRectMake(0, 0, width!*5, height!))
            
            yellowView?.backgroundColor = UIColor(patternImage: yellowimage!)
            
            //放大灰色星星和黄色星星使其与自身view同大
            var VW = grayView?.bounds.size.width
            var scole = self.bounds.size.width/VW!
            
            var newTransform = CGAffineTransformMakeScale(scole, scole)
            grayView?.transform = newTransform
            yellowView?.transform = newTransform
            
            grayView?.frame = self.bounds
            yellowView?.frame = self.bounds
            self.addSubview(grayView!)
            self.addSubview(yellowView!)
            
        }
    
        
    
        
        
    }
    
  • 相关阅读:
    谈谈数据库连接池的原理
    认识wsgi
    mysql存储引擎介绍,索引
    Go语言并发组件--Goroutine
    【高级课程笔记】—— Echarts高级应用(二)
    【高级课程笔记】—— Echarts高级应用(一)
    【高级课程笔记】—— Echarts常用图表
    【高级课程笔记】—— Echarts入门&常用组件
    【重点突破】—— js防抖和节流(转)
    【重点突破】—— moment.js获取时间格式化
  • 原文地址:https://www.cnblogs.com/zxh-iOS/p/5005070.html
Copyright © 2020-2023  润新知