2017-11-14 4 views
0

특정 텍스트 줄 뒤에 UITableView의 모든 셀 텍스트를 취소하고 싶습니다.취소 선 UITableView 셀 텍스트 뒤에 문자열이있는 셀 텍스트

Example (after "+")

는 내가 가까이라고 생각하지만, 취소는 시뮬레이터에 적용되지 않습니다. (빌드 성공)

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 

    let cell = UITableViewCell(style: UITableViewCellStyle.default, reuseIdentifier: "Cell") 

    if indexPath.row > dailyTasks.index(of: "+")! { 

    let attributeString: NSMutableAttributedString = NSMutableAttributedString(string: dailyTasks[indexPath.row]) 
    attributeString.addAttribute(NSAttributedStringKey.strikethroughStyle, value: 1, range: NSMakeRange(0, attributeString.length)) 

    cell.textLabel?.attributedText = attributeString 

    } else { 
    cell.textLabel?.text = dailyTasks[indexPath.row] 
    } 

    cell.textLabel?.font = UIFont(name: "GillSans-Light", size: 17) 
    cell.indentationLevel = 1 
    cell.textLabel?.addCharactersSpacing(1.2) 
    cell.backgroundColor = UIColor(red:0.99, green:0.97, blue:0.91, alpha:1.0) 
    cell.selectionStyle = UITableViewCellSelectionStyle.none 

    return cell 

} 
+0

어쩌면 당신은 그것을 볼 수 없을지도 모릅니다. 시뮬레이터는 흔히 시뮬 레이 터를 크기 조정하여 정확하게 장치의 크기를 나타내는 경우 컴퓨터 화면에서 아이폰을 정확하게 픽셀로 표현할 수 없기 때문에 선을 삼켜 버리는 경우가 많습니다. 일단 당신이 시뮬레이터를 확대하면 거기에 있는지보십시오. – erikmartens

+0

레이블의 다른 속성을 설정 한 후에 레이블 텍스트를 설정해보십시오. – rmaddy

답변

0

특성 문자열을 사용하는 경우 레이블에 글꼴을 설정하지 마십시오. 글꼴을 속성으로 설정하십시오. 다음과 같이하는 방법을 보여주는 놀이터가 있습니다 :

import UIKit 
import PlaygroundSupport 

let label = UILabel() 
let text = "sample text" 
let view = UIView(frame: CGRect(x: 0, y: 0, width: 300, height: 300)) 
let attributes: [NSAttributedStringKey: Any] = 
    [NSAttributedStringKey.font: UIFont(name: "GillSans-Light", size: 17)!, 
    NSAttributedStringKey.foregroundColor : UIColor.white, 
    NSAttributedStringKey.strikethroughStyle: 1] 
label.attributedText = NSAttributedString(string: text, attributes: attributes) 
view.addSubview(label) 
label.sizeToFit() 
PlaygroundPage.current.liveView = view 
+0

FYI - 각 키 앞에 'NSAttributedStringKey'를 제거하면 입력하기가 더 쉽습니다. 그리고 취소 선 유형에 대해 '1'을 하드 코딩하지 마십시오. 대신 NSUnderlineStyle.styleSingle.rawValue'를 사용하십시오. – rmaddy

+0

고마워요 @ 조쉬와 rmaddy. 속성이 지정된 문자열 배치를 변경하고 .font 명령을 이동하면 효과가있었습니다. – reinho14