Size Class가 반한 이야기...
(이전 제목: NSAttributedString이 덫에 걸린 이야기.)
문자의 장식 등이 편리하다
NSAttributedString
...이 녀석이 뜻밖의 함정에 빠진 이야기
이벤트
텍스트 크기를 변경할 수 없음... 사용할 수 없음
저는 이 한마디밖에 할 수 없는데...
NSFontAttributeName
에서 지정한 경우UIFont
에도 문자 크기가 변경되지 않을 수 있습니다.까닭
이유가 무엇인가
스토리보드
UILabel
의 Font가 크기 종류에 따라 일치하는 경우 코드의 설정은 무시됩니다이런 방법일까, 버그일까...
(xib 단일 항목에 대한 인증이 없음...TextView도 없음)
디테일
구체적으로 이런 느낌입니다.
스토리보드 설정
스토리보드에 이런 설정.
Font의 지정만 추가된 후 함께 (기본 상태)
인증 코드
ViewController.swift
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var label: UILabel!
@IBOutlet weak var label2: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
self.setupAttributedString("hello world!!", target: self.label)
self.setupAttributedString("good-bye world...", target: self.label2)
}
func setupAttributedString(text: String, target: UILabel) {
let attributedString = NSMutableAttributedString(string: text)
attributedString.addAttribute(NSFontAttributeName, value: UIFont(name: "Helvetica Neue", size: 30.0)!, range: NSMakeRange(0, 5))
attributedString.addAttribute(NSForegroundColorAttributeName, value: UIColor.redColor(), range: NSMakeRange(0, 5))
target.attributedText = attributedString
}
}
짧아서 통째로 올려요.뭐 이상한 거 있어?
기대되는 인테리어 내용은요.
처음 다섯 글자를 확대하여 빨간색으로 변하다
이런 느낌.
결실
실행 결과는 다음과 같다.
Font의 추가 설정
label1
을 하지 않았습니다. 기대했던 대로...label2
사람은 안돼!!!유명한 이야기인가...
해결책
몰라, 미안해..
알려주세요, 제발.
너무 많이 해서 못했어요.
추가 지정을 포기했습니다.
코드로 포테이토칩을 설정하면 당연히 의미가 없지...그렇죠 orz?
참고로 실제로는 TableCell의 레이블에서 일어났어요.
그때는 처음부터 이러면 안 돼
스크롤 같은 레우스라면 기대했던 대로...
신비롭다...
추기
자고 일어나면 알아요.
사이즈별로 지정하면 자신이 잘할 수 있는
viewDidAppear:
정도의 타이밍에 결정해야 한다.('viewDidApper:'에서 같은 일을 하면 문제없다)
AutoLayout도 그렇구나...
그러니까cell의reuse는 효과가 있고 NSAttributed String 같은 것도 아니에요.
초보적인 말이에요.
수면대사(땀)
Reference
이 문제에 관하여(Size Class가 반한 이야기...), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/AnzNetJp/items/b537c506ee53684c8096텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)