加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 01:47:29 所属栏目:百科 来源:网络整理
导读:1 使用十六进制颜色: UIColor . colorWithHexString ( "#f5f4f4" ) 对UIColor的扩展如下: import Foundationimport UIKitextension UIColor { class func colorWithHexString(stringToConvert:String)-UIColor{ NSCharacterSet.whitespaceAndNewlineCharac

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);
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读