UIButton同时更改字体和文本

时间:2016-04-20 01:46:59

标签: ios uibutton

我们的应用中有一个UIButton,我们在显示正常的系统字体字符串和FontAwesome图标(它只是一个特定于其字体的unicode字符)之间来回切换。我们可以在这些之间来回切换,除了iOS一个接一个地动画两个更改,因此在第一次更改之后但在第二次更改之前文本显示奇怪的时间很短。我尝试将UIView.beginAnimations与其commitAnimations对应方以及animateWithDuration:animations:一起使用,但都没有任何效果。

如何同时更改文字和字体?

修改:根据评论更新代码

func changeToSend() {
    sendButton.titleLabel?.font = UIFont(name: "System", size: 15)
    sendButton.setTitle("Send", forState: UIControlState.Normal)
}

func changeToMicroPhone() {
    sendButton.titleLabel?.font = UIFont(name: "FontAwesome", size: 24)
    sendButton.setTitle("\u{f130}", forState: UIControlState.Normal)
}

1 个答案:

答案 0 :(得分:0)

试试这个:

    func changeToSend() {
        UIView.performWithoutAnimation { 
            self.sendButton.titleLabel?.font = UIFont(name: "System", size: 15)
            self.sendButton.setTitle("Send", forState: UIControlState.Normal)
        }
    }

    func changeToMicroPhone() {
        UIView.performWithoutAnimation {
            self.sendButton.titleLabel?.font = UIFont(name: "FontAwesome", size: 24)
            self.sendButton.setTitle("\u{f130}", forState: UIControlState.Normal)
        }
    }