ずっと5月

3日坊主してます

Swiftで袋文字を作る

袋文字を作りたくて、UISliderで文字の大きさとフチのサイズを可変にする方法を調べた。

import UIKit

class ViewController: UIViewController {

    @IBOutlet weak var label: UILabel!
    @IBOutlet weak var fontSize: UISlider!
    @IBOutlet weak var edgeSize: UISlider!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
    }

    @IBAction func fontSizeChanged(_ sender: Any) {
        label.font = UIFont.boldSystemFont(ofSize: CGFloat(fontSize.value))
    }
    
    @IBAction func edgeSizeChanged(_ sender: Any) {
        if let text = label.text {
            label.attributedText = NSAttributedString(string: text, attributes: label.makeAttributedString(font: label.font, strokeEdge: edgeSize.value, foreGroundColor: UIColor.black, strokeColor: UIColor.green))
        }
    }
}

extension UILabel {
    
    func makeAttributedString(font: UIFont, strokeEdge: Float, foreGroundColor: UIColor, strokeColor: UIColor) -> [NSAttributedString.Key : Any] {
        
        return [.strokeWidth : strokeEdge,
                .font : font,
                .foregroundColor :foreGroundColor,
                .strokeColor : strokeColor
            ] as [NSAttributedString.Key : Any]
    }
}

f:id:uminokaze521:20200823221947g:plain
実際に動かした動画

この後はカラースライダーで文字の色を可変にする方法を探したい

参考にしたページ

www.macneko.com