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)
}
}
UILable,UIfont,NSAttributedString模版
最新推荐文章于 2021-09-23 10:37:13 发布