iOS NSAttributedString 이 cell 재 활용 으로 인 한 문제

질문 설명:
일부 cell 의 label 은 부 텍스트 속성 을 설정 해 야 하 며,일 부 는 필요 하지 않 습 니 다.NSAttributedString 을 사용 한 후 재 활용 한 cell 역시 같은 효 과 를 가진다.
오류 사용 예시:
 cell.lCost.text = ""
 cell.lCost.attributedText = nil
 if indexPath.row == 10 {
     let att = NSAttributedString(string: "\(indexPath.row)", attributes: [NSAttributedString.Key.foregroundColor:UIColor.red, .underlineStyle:NSUnderlineStyle.single.rawValue])
     cell.lCost.attributedText = att
  } else {
     cell.lCost.text = "\(indexPath.row)"
 }

효과:row=10 의 글꼴 색상 이 빨간색 인 것 을 제외 하고 스크롤 후 부분 cell 의 글꼴 색상 도 빨간색 입 니 다.attributed Text=nil 이 설정 되 어 있 지만 앞 에 text="을 설정 하여 이전 부 텍스트 속성 을 참조 하여 보존 합 니 다.이 현상 은 iOS 10 및 이전 에는 존재 하지 않 습 니 다.
해결 방법:text 삭제=""
if indexPath.row == 10 {
   let att = NSAttributedString(string: "\(indexPath.row)", attributes: [NSAttributedString.Key.foregroundColor:UIColor.red, .underlineStyle:NSUnderlineStyle.single.rawValue])
    cell.lCost.attributedText = att
 } else {
    cell.lCost.attributedText =  NSAttributedString(string: "\(indexPath.row)")
 }

좋은 웹페이지 즐겨찾기