UILable,UIfont,NSAttributedString模版

import UIKit

class MyView: UIView {
    
    override func draw(_ rect: CGRect) {
        let roundedRect = UIBezierPath(roundedRect: bounds, cornerRadius: bounds.size.height*0.01)
        roundedRect.addClip()
        UIColor.white.setFill()
        roundedRect.fill()
    }
    
    
    override func layoutSubviews() {
        super.layoutSubviews()
        configureCornerlabel(mylabel)
        mylabel.frame.origin = bounds.origin.offsetBy(dx: bounds.size.width*0.35, dy: 0)
        configureCenterlabel(my_center_lable)
        // print("\(mylabel.frame)")
        //        print("\(mylabel.bounds)")
        //        print("\(bounds)")
        //print("\(frame)")
    }
    
    private lazy var mylabel = createCornerlabel()
    private lazy var my_center_lable = createCornerlabel()
    
    
    private func centerAttributedStrng(_ string : String , fontSize:CGFloat)->NSAttributedString
    {
        var font = UIFont.preferredFont(forTextStyle: .title1).withSize(fontSize)
        font = UIFontMetrics(forTextStyle: .title1).scaledFont(for: font)//ios中通过滑动改变字体大小也能适用到应用中
        //        let font = UIFont.italicSystemFont(ofSize: fontSize)
        let paragraphStyle = NSMutableParagraphStyle()
        paragraphStyle.alignment = .center
        let underline =  NSUnderlineStyle.double.rawValue
        
        return NSAttributedString(string: string, attributes: [.paragraphStyle:paragraphStyle,.font:font,.underlineStyle:underline,.underlineColor:UIColor.red])//map 牛逼
    }
    
    private var a_String:NSAttributedString{
        return centerAttributedStrng("云 耕", fontSize: bounds.size.height*0.06)
    }
    
    private func create_attributedString(_ string:String , fontsize :CGFloat)->NSAttributedString{
        var font = UIFont.preferredFont(forTextStyle: .body).withSize(fontsize)
        font=UIFontMetrics(forTextStyle: .body).scaledFont(for: font)
        let paragraphStyle = NSMutableParagraphStyle()
        paragraphStyle.alignment = .center
        return NSAttributedString(string: string, attributes: [.paragraphStyle : paragraphStyle,.font : font])
        
    }
    private var center_string:NSAttributedString{
        return create_attributedString("今天星期五,又是元气满满的一天", fontsize:bounds.size.height*0.04 )
    }
    
    
    private func createCornerlabel()->UILabel
    {
        let label = UILabel()
        label.numberOfLines = 0//设置label文本为多行
        addSubview(label)
        return label
    }
    
    private func configureCornerlabel(_ label:UILabel)
    {
        label.attributedText = a_String
        label.frame.size = CGSize.zero
        label.sizeToFit()
        label.adjustsFontSizeToFitWidth = true
        label.textColor = UIColor.systemYellow
        label.shadowColor = UIColor.red
        let mysize = CGSize(width: -1, height: 1)
        label.shadowOffset = mysize
    }
    private func configureCenterlabel(_ label:UILabel)
    {
        label.attributedText = center_string
        label.backgroundColor = UIColor.gray
        label.textColor = UIColor.blue
        my_center_lable.frame = CGRect(x: bounds.origin.x+20, y: bounds.origin.y+bounds.size.height*0.1, width: bounds.size.width-30, height: 0)
        my_center_lable.sizeToFit()
        //        label.shadowColor = UIColor.red
        //        let mysize = CGSize(width: -1, height: 1)
        //           label.shadowOffset = mysize
    }
    
    
    
}


extension CGPoint{
    func offsetBy(dx: CGFloat,dy :CGFloat)->CGPoint{
        return CGPoint(x: x+dx, y: y+dy)
    }
    
}

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REaDME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值