• 使用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!)
            
        }
    
        
    
        
        
    }
    
  • 相关阅读:
    浅谈Vue基础知识(二)
    浅谈Vue基础知识(一)
    ES 6
    网易DBA私享会分享会笔记2
    网易DBA私享会分享会笔记1
    centos6.5适用的国内yum源:网易、搜狐
    如何去除 ckeditor 上传图片后在原码中留下的 style="width: 100%;height:100px"之类的代码呢?
    关于json.ajax ,php的那点事
    去掉所有的html标签
    [CentOS 0010] CentOS 配置mysql允许远程登录
  • 原文地址:https://www.cnblogs.com/zxh-iOS/p/5005070.html
Copyright © 2020-2023  润新知