Size Class가 반한 이야기...

5612 단어 XcodeSwift
※ 추서에 적었지만, 이유를 알고 제목을 변경했다(웃음)
(이전 제목: 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 같은 것도 아니에요.
초보적인 말이에요.
수면대사(땀)

좋은 웹페이지 즐겨찾기