Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用swift中的按钮点击动态更改文本视图中的字体?_Swift_Uilabel_Uitextview_Uppercase - Fatal编程技术网

如何使用swift中的按钮点击动态更改文本视图中的字体?

如何使用swift中的按钮点击动态更改文本视图中的字体?,swift,uilabel,uitextview,uppercase,Swift,Uilabel,Uitextview,Uppercase,我创建了一个如下所示的文本视图,并添加了键盘按钮,用户可以更改字体。这是工作,但它改变了整个文本的字体,但我想改变字体后,才点击按钮。你能帮忙吗 func setKeyboard() { // this is for keyboard button let bar = UIToolbar() let flex = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.flexibleSpace,

我创建了一个如下所示的文本视图,并添加了键盘按钮,用户可以更改字体。这是工作,但它改变了整个文本的字体,但我想改变字体后,才点击按钮。你能帮忙吗

   func setKeyboard() { // this is for keyboard button

    let bar = UIToolbar()

    let flex = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.flexibleSpace, target: self, action: nil)

     let font = UIBarButtonItem(image: UIImage(named: "icons8-image-80"), style: .plain, target: self, action: #selector(fontTapped))

bar.barTintColor = UIColor(displayP3Red: 30/255, green: 30/255, blue: 30/255, alpha: 1)
bar.sizeToFit()

    writePost.inputAccessoryView = bar

}

// and this one is fontTapped function

   @objc func fontTapped() {

    if fontTag == 0 {
       let attributedText = NSMutableAttributedString(string: writePost.text, attributes: [NSAttributedString.Key.font: UIFont.systemFont(ofSize: 12)])
         writePost.attributedText = attributedText
        fontTag = 1

    } else {

        writePost.font = UIFont(name: "AvenirNext-DemiBoldItalic", size: 16)
        fontTag = 0
}
}

您将使用UITextField的attributedText属性,如下所示:

并可能在UITextFieldDelegate的shouldChangeCharactersRange()中构建属性字符串,以更改传入字符的字体


要更改用户从现在开始键入的字体/样式,请更改文本视图的
键入属性


不清楚“我只想在点击按钮后更改字体”是什么意思。你说的是
writePost.attributedText=attributedText
,它改变了整个文本视图的字体;现在还不清楚你还期望什么或者你还想要什么。你能解释得更清楚些吗?也许可以举一个你希望做什么的例子?好吧,比如我正在写作;带斜体的“hello world”这是我的文本视图的默认字体。然后我点击“fontTapped”并写下:“我是x代码”。所以我想把“hello world”改成斜体,但“I am x Code”改成粗体