zoukankan      html  css  js  c++  java
  • 使用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!)
            
        }
    
        
    
        
        
    }
    
  • 相关阅读:
    Java Thread 总结
    用 for/in 在 Java 5.0 中增强循环
    JAVA中synchronized和lock详解
    centos vim的安装目录在哪里
    Cannot add task 'wrapper' as a task with that name already exists.
    servlet的生命周期
    I/O同个文件需要注意的问题
    分治策略---求最大子数组
    Java实现 100!的阶乘
    Java中方法的重载与覆盖(随笔01)
  • 原文地址:https://www.cnblogs.com/zxh-iOS/p/5005070.html
Copyright © 2011-2022 走看看