iOS
NSAttributedString
수색…
비고
커스텀 커닝 (문자 간격)이있는 문자열 만들기
NSAttributedString
(및 해당 mutable 형제 NSMutableAttributedString
)을 사용하면 복잡한 모양의 문자열을 사용자에게 만들 수 있습니다.
일반적인 응용 프로그램은 문자열을 표시하고 사용자 정의 커닝 / 문자 간격을 추가하는 데이 코드를 사용하는 것입니다.
이것은 다음과 같이 달성 될 것입니다 (label은 UILabel
임). "kerning"이라는 단어에 다른 커닝을 사용합니다.
빠른
var attributedString = NSMutableAttributedString("Apply kerning")
attributedString.addAttribute(attribute: NSKernAttributeName, value: 5, range: NSMakeRange(6, 7))
label.attributedText = attributedString
목표 -C
NSMutableAttributedString *attributedString;
attributedString = [[NSMutableAttributedString alloc] initWithString:@"Apply kerning"];
[attributedString addAttribute:NSKernAttributeName value:@5 range:NSMakeRange(6, 7)];
[label setAttributedText:attributedString];
취소 선 텍스트가있는 문자열 만들기
목표 -C
NSMutableAttributedString *attributeString = [[NSMutableAttributedString alloc] initWithString:@"Your String here"];
[attributeString addAttribute:NSStrikethroughStyleAttributeName
value:@2
range:NSMakeRange(0, [attributeString length])];
빠른
let attributeString: NSMutableAttributedString = NSMutableAttributedString(string: "Your String here")
attributeString.addAttribute(NSStrikethroughStyleAttributeName, value: 2, range: NSMakeRange(0, attributeString.length))
그런 다음 UILabel에 추가 할 수 있습니다.
yourLabel.attributedText = attributeString;
Swift에서 속성이있는 문자열과 굵은 텍스트 추가
let someValue : String = "Something the user entered"
let text = NSMutableAttributedString(string: "The value is: ")
text.appendAttributedString(NSAttributedString(string: someValue, attributes: [NSFontAttributeName:UIFont.boldSystemFontOfSize(UIFont.systemFontSize())]))
결과는 다음과 같습니다.
값은 다음과 같습니다 . 사용자가 입력 한 내용
단어 또는 문자열의 색상 변경
목표 -C
UIColor *color = [UIColor redColor];
NSString *textToFind = @"redword";
NSMutableAttributedString *attrsString = [[NSMutableAttributedString alloc] initWithAttributedString:yourLabel.attributedText];
// search for word occurrence
NSRange range = [yourLabel.text rangeOfString:textToFind];
if (range.location != NSNotFound) {
[attrsString addAttribute:NSForegroundColorAttributeName value:color range:range];
}
// set attributed text
yourLabel.attributedText = attrsString;
빠른
let color = UIColor.red;
let textToFind = "redword"
let attrsString = NSMutableAttributedString(string:yourlabel.text!);
// search for word occurrence
let range = (yourlabel.text! as NSString).range(of: textToFind)
if (range.length > 0) {
attrsString.addAttribute(NSForegroundColorAttributeName,value:color,range:range)
}
// set attributed text
yourlabel.attributedText = attrsString
참고 :
여기서 주된 기능은 NSMutableAttributedString
과 selector NSForegroundColorAttributeName
을 사용하는 selector addAttribute:value:range
사용하여 문자열 범위의 색상을 변경하는 것입니다.
NSMutableAttributedString *attrsString = [[NSMutableAttributedString alloc] initWithAttributedString:label.attributedText];
[attrsString addAttribute:NSForegroundColorAttributeName value:color range:range];
범위를 얻기 위해 다른 방법을 사용할 수 있습니다 (예 : NSRegularExpression).
모든 속성 제거하기
목표 -C
NSMutableAttributedString *mutAttString = @"string goes here";
NSRange range = NSMakeRange(0, mutAttString.length);
[mutAttString setAttributes:@{} range:originalRange];
Apple Documentation에 따라 addAttribute
아닌 setAttributes
가 사용됩니다.
빠른
mutAttString.setAttributes([:], range: NSRange(0..<string.length))
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow