텍스트 컨트롤 요약

1876 단어

SDK에서 제공하는 텍스트 컨트롤

  • UILAbel(UIView 상속): 입력할 수 없음;
  • UITExtField(UIView 계승): 한 줄만 입력할 수 있고 스크롤할 수 없고 알림 문자를 설정할 수 있습니다.
  • UITextView(UIScrollView 계승): 여러 줄을 입력할 수 있고 스크롤할 수 있으며 알림 문자를 설정할 수 없습니다.

  • 세 가지 컨트롤은 모두 attributedText를 지원하고 html을 직접 원본으로 표시할 수 있다. 구체적인 코드는 다음과 같다.
    NSAttributedString *attributedString = [[NSAttributedString alloc] initWithData:[content dataUsingEncoding:NSUnicodeStringEncoding]
                                                                            options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType }
                                                                 documentAttributes:nil
                                                                              error:nil];
    

    특징:text와 html 스타일 통일


    많은 상황에서 하나의 컨트롤러는text를 표시할 수도 있고 html을 표시할 수도 있지만 그들의 기본 스타일 속성은 모두 같다.문제의 단순화를 위해 UIlabel만 논의합니다.UILAbel의 font와 textColor 속성은 text에만 작용하고attributedText에는 작용하지 않는다는 것을 모두가 알고 있다. 만약에 백엔드나 전단에서 text나 html을 구분하게 하는 것도 매우 고통스러운 일이다.
    html 라벨을 이용하여 콘텐츠 바깥쪽에 기본 속성을 봉인합니다.
    html 상용 라벨을 살펴보면span 라벨이 이 일을 감당할 수 있음을 발견할 수 있습니다. 구체적인 코드는 다음과 같습니다.
    + (NSAttributedString *)attributedStringContent:(NSString *)content
    {
        content = [NSString stringWithFormat:@"%@", content];
        NSAttributedString *attributedString = [[NSAttributedString alloc] initWithData:[content dataUsingEncoding:NSUnicodeStringEncoding]
                                                                                options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType }
                                                                     documentAttributes:nil
                                                                                  error:nil];
        return attributedString;
    }
    

    좋은 웹페이지 즐겨찾기