使用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!)
        
    }

    

    
    
}

 

转载于:https://www.cnblogs.com/zxh-iOS/p/5005070.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值