2017-12-12 15 views
0

속성 문자열을 사용하여 UILabel에있는 탭의 기본 너비를 변경하고 싶습니다. 어떻게하면 될까요? 내가 속성 NSMutableParagraphStyle을 추가해야한다고 가정하지만 어떤 속성이 탭 길이를 담당하는지 알지 못합니다.NSAttributedString에서 " t"길이를 변경하는 방법은 무엇입니까?

의 예를 들어이 코드를 사용하자 : 당신이 Apple Developer Documentation에 따르면

var text = "test\ttest" 
text = text.replacingOccurrences(of: "\\t", with: " ") 
let attributedText = NSMutableAttributedString(string: text) 
let paragraphStyle = NSMutableParagraphStyle() 
let textRange = NSRange(location: 0, length: text.length) 
attributedText.addAttribute(NSAttributedStringKey.paragraphStyle, value: paragraphStyle, range: textRange) 
+0

에 할당해야 얼마나 많은 공간을 추가하려고합니까? – DoesData

+0

예를 들어 8 포인트 공간을 원한다고 가정 해 봅시다. ""문제는 텍스트 색칠에 있습니다. – ThirdMartian

답변

2

원하는

let text = "test\ttest" 
let attributedText = NSMutableAttributedString(string: text) 
let paragraphStyle = NSMutableParagraphStyle() 
let textRange = NSRange(location: 0, length: text.length) 
attributedText.addAttribute(NSAttributedStringKey.paragraphStyle, value: paragraphStyle, range: textRange) 
+0

이것은 내가 원했던 것입니다. – ThirdMartian

1

당신이 공간의 번호를 \ t를 교체 시도 할 수 있습니다를, var tabStops: [NSTextTab]!는 대표 NSTextTab 객체의 배열이다 리시버의 탭이 멈 춥니 다. 당신은 탭에 액세스하고 다음과 같이 자신의 위치를 ​​변경할 수 있습니다

let paragraphStyle = NSMutableParagraphStyle() 
paragraphStyle.tabStops = [NSTextTab(textAlignment: .left, location: newTabLength, options: [:])] 

label.attributedText = NSAttributedString(string: text, attributes: [NSParagraphStyleAttributeName: paragraphStyle]) 
+0

""하나의 공백을 추가하면 몇 개의 결과가 동일하게 추가됩니다. – ThirdMartian

+0

예 html은 공백을 피합니다. –

2

NSMutableParagraphStyle를 통해이 tab stop 길이를 변경하려면이 NSTextTab 인스턴스의 새로운 배열을 생성하고 tabStops 배열

let text = "test\ttest\ttest" 
let attributedText = NSMutableAttributedString(string: text) 
let paragraphStyle = NSMutableParagraphStyle() 
let tabInterval : CGFloat = 40.0 
var tabs = [NSTextTab]() 
for i in 1...10 { tabs.append(NSTextTab(textAlignment: .left, location: tabInterval * CGFloat(i))) } 
paragraphStyle.tabStops = tabs 
let textRange = NSRange(location: 0, length: text.count) 
attributedText.addAttribute(NSAttributedStringKey.paragraphStyle, value: paragraphStyle, range: textRange) 
+0

답변을 주셔서 감사합니다. 불행히도 @ 도르 칸 알 슬란 (Dorukhan Arslan)이 먼저 낭비됩니다. 나는 그의 대답을 받아 들일 것입니다. – ThirdMartian

+1

@ThirdMartian 문제가 없습니다. – vadian

+0

답안의 첫 번째 탭에 대해서만 속성이 지정된 텍스트의 탭 문자 길이를 변경하는 방법을 보여 줬습니다. @ vadian의 대답은 다음 탭에서도 적용 할 수있는 좋은 확장 기능을 제공합니다. –