swift开发笔记7 - 颜色和日期的使用

前端之家收集整理的这篇文章主要介绍了swift开发笔记7 - 颜色和日期的使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1 使用十六进制颜色:

UIColor.colorWithHexString("#f5f4f4")

对UIColor的扩展如下:

import Foundation
import UIKit

extension UIColor {
    class func colorWithHexString(stringToConvert:String)->UIColor{
        NSCharacterSet.whitespaceAndNewlineCharacterSet()
        var cString:NSString = stringToConvert.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet()).uppercaseString
        
        if (cString.length < 6){
            return UIColor.clearColor();
        }
        if cString.hasPrefix("0X"){
            cString = cString.substringFromIndex(2)
        }
        if cString.hasPrefix("#"){
            cString = cString.substringFromIndex(1)
        }
        if (cString.length != 6){
            return UIColor.clearColor();
        }
        var range:NSRange = NSMakeRange(0,2);
        let rString:String = cString.substringWithRange(range)
        range.location = 2;
        
        let gString:String = cString.substringWithRange(range)
        range.location = 4;
        let bString:String = cString.substringWithRange(range)
        var r:CUnsignedInt=0
        var g:CUnsignedInt=0
        var b:CUnsignedInt=0
        
        NSScanner(string: rString).scanHexInt(&r)
        NSScanner(string: gString).scanHexInt(&g)
        NSScanner(string: bString).scanHexInt(&b)
        
        //        NSScanner.scannerWithString(rString).scanHexInt(&r)
        //        NSScanner.scannerWithString(gString).scanHexInt(&g)
        //        NSScanner.scannerWithString(bString).scanHexInt(&b)
        
        return UIColor(red: CGFloat(r)/255.0,green: CGFloat(g)/255.0,blue: CGFloat(b)/255.0,alpha: 1.0)
    }
    
}

2 获取当前年月:
 let today = NSCalendar.currentCalendar().components([NSCalendarUnit.NSEraCalendarUnit,NSCalendarUnit.NSYearCalendarUnit,NSCalendarUnit.NSMonthCalendarUnit,NSCalendarUnit.NSDayCalendarUnit],fromDate: NSDate()) as NSDateComponents
            //获取当前月第一天是星期几
            let startNumber:Int = Datecalculate.getStart(  today.month,year:today.year)

Datecalculate.getStart定义在最后

3 设置按钮样式:

                       //文字色
                        button.setTitleColor(UIColor.colorWithHexString("#b8b7b7"),forState: UIControlState.Normal)
                        //边框色
                         button.layer.borderColor =  CGColorCreateCopy(UIColor.colorWithHexString("#d9d6d6").CGColor)
                        //填充色
                        button.backgroundColor =  UIColor.colorWithHexString("#f5f4f4")


最终效果



日期函数类:

import Foundation

class Datecalculate: NSObject{
    class func getDayCountOf(month:Int,year:Int)->Int{
        switch (month) {
        case 1:
            return 31
        case 3:
            return 31
        case 4:
            return 30
        case 5:
            return 31
        case 6:
            return 30
        case 7:
            return 31
        case 8:
            return 31
        case 9:
            return 30
        case 10:
            return 31
        case 11:
            return 30
        case 12:
            return 31
        default:
            break
        }
        if(year % 400 == 0 || (year % 100 != 0 && year % 4 == 0))
        {
            return 29
        }
        else {
            return 28
        }
    }
    
    
    class func getStart(month:Int,year:Int)->Int{
        var baseNumber:Int
        var startNumber:Int
        
        if(year % 400 == 0 || (year % 100 != 0 && year % 4 == 0))
        {
            switch (month) {
            case 1:
                baseNumber = 0
                
            case 2:
                baseNumber = 3
                
            case 3:
                baseNumber = 4
                
            case 4:
                baseNumber = 0
                
            case 5:
                baseNumber = 2
                
            case 6:
                baseNumber = 5
                
            case 7:
                baseNumber = 0
                
            case 8:
                baseNumber = 3
                
            case 9:
                baseNumber = 6
                
            case 10:
                baseNumber = 1
                
            case 11:
                baseNumber = 4
                
            case 12:
                baseNumber = 6
                
            default:
                baseNumber = 0
            }
            startNumber = (year + year/4 + year/400 - year/100 - 2 + baseNumber + 1) % 7
        }
            
        else
        {
            switch (month) {
            case 1:
                baseNumber = 0
            case 2:
                baseNumber = 3
            case 3:
                baseNumber = 3
            case 4:
                baseNumber = 6
            case 5:
                baseNumber = 1
            case 6:
                baseNumber = 4
            case 7:
                baseNumber = 6
            case 8:
                baseNumber = 2
            case 9:
                baseNumber = 5
            case 10:
                baseNumber = 0
            case 11:
                baseNumber = 3;
                break;
            case 12:
                baseNumber = 5
            default:
                baseNumber = 0
            }
            startNumber = (year + year/4 + year/400 - year/100 - 1 + baseNumber + 1) % 7
        }
        return startNumber
    }
    
    class func getLayer(year:Int,month:Int)->Int{
        let monthDay =  self.getDayCountOf(month,year: year)
        let startNumber =  self.getStart(month,year: year)
        var newLayer =  startNumber+monthDay
        let layer = ceilf(Float(startNumber+monthDay)/7)
        return Int(layer);
    }
}

猜你在找的Swift相关文章