我正在制作一个具有UITextView的iOS应用程序。当在该UITextView中关闭括号时,我希望突出显示与之配对的开放括号给用户看。目前,我使用NSMutableAttributedString并更改成对括号的字体大小来实现这一点,这虽然有效但不太美观。我真正想要的是通过动画来完成这个功能,就像Xcode在我关闭代码中的括号时所做的那样。是否有任何方法可以实现这一点呢?
非常感谢您的任何帮助,尽管我对此还比较陌生,请不要认为我知道得太多 :)
以下是我的代码:
非常感谢您的任何帮助,尽管我对此还比较陌生,请不要认为我知道得太多 :)
以下是我的代码:
@IBAction func didPressClosingParentheses(sender: AnyObject) {
appendStringToInputTextView(")")
var count = 1
let currentString = inputTextView.attributedText.string
let characterArray = Array(currentString)
let closingIndex = characterArray.count - 1
for i in reverse(0...closingIndex-1) {
if characterArray[i] == "(" {
count--
}
else if characterArray[i] == ")" {
count++
}
if count == 0 {
let startingIndex = i
var newString = NSMutableAttributedString(string: currentString)
newString.addAttribute(NSFontAttributeName, value: UIFont(name: "HelveticaNeue-Thin", size: 28)!, range: NSMakeRange(0, newString.length))
newString.addAttribute(NSForegroundColorAttributeName, value: UIColor(red: 243, green: 243, blue: 243, alpha: 1), range: NSMakeRange(0, newString.length))
newString.addAttribute(NSFontAttributeName, value: UIFont(name: "HelveticaNeue-Thin", size: 35)!, range: NSMakeRange(startingIndex, 1))
newString.addAttribute(NSFontAttributeName, value: UIFont(name: "HelveticaNeue-Thin", size: 35)!, range: NSMakeRange(closingIndex, 1))
UIView.animateWithDuration(0.4, delay: 0.0, usingSpringWithDamping: 0.7, initialSpringVelocity: 0.8, options: nil, animations: {
self.inputTextView.attributedText = newString
}, nil)
break
}
}
}
你可以看到我尝试使用UIView.animateWithDuration来实现这个,但是如我所料,它没有起作用。