注意:本代码源于swift2.3语法,若使用swift3.0语法请自行稍作调整
在一些app中有些需要用户手动填入信息的地方但不是所有的都是必须要填写的但是有些是必须要填写的,这就要求我们要提醒用户哪些是必填的选项,往往我们的做法是在必填的选项的文字后面添加红的的“*”号来提示用户这些是必填的选项,但是在swift 中直接的来改变的一个string的字体颜色往往不是那么容易实现,ios中有对label的这种单个控件的文字的颜色设置,各种控件的颜色也能设置,但是若要只是改变一个字符串中的某一个字符的颜色便可以用到如下的这个方法来实现,希望对大家在处理这类问题的时候能有所帮助,谢谢!
效果图如下:
代码func如下:
func addRedStar(string:String) ->NSMutableAttributedString{
let starString = string +"*"
let attrString =NSMutableAttributedString(string: starString)
let range = starString.rangeOfString("*")!
let startIndex = Int("\(range.startIndex)")
attrString.addAttribute(NSForegroundColorAttributeName, value:UIColor.redColor(), range:NSRange.init(location: startIndex!, length:1))
return attrString
}
在调用的时候注意要在设置cell的时候做如下调用:
func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath:NSIndexPath) -> UITableViewCell {
.......
cell.textLabel?.attributedText =addRedStar((cell.textLabel?.text)!)
return cell
}