Sketch와 Xcode의 lineSpacing의 정의가 다르기 때문에 디자인이 까다롭다면

7092 단어 SwiftsketchiOS
Sketch의 lineSpacing은 Xcode에서도 lineSpacing으로 지정하면 디자인도 달라 까다롭다.
먼저 Xcode의 lineSpacing 지정(Sketch의 lineSpacing) - (글꼴 크기), UIlabel 자체의 Y Position을 lineSpacing의 절반으로 낮춘다.

Xcode lineSpacing의 정의


The distance in points between the bottom of one line fragment and the top of the next.
다음 행에서 이전 행까지의 거리입니다.
https://developer.apple.com/documentation/uikit/nsmutableparagraphstyle/1528742-linespacing

Xcode의 lineHeightMultiple 정의


The line height multiple.
즉행고
https://developer.apple.com/documentation/uikit/nsparagraphstyle/1528614-lineheightmultip

Sketch의 lineSpacing 정의




Sketch의 lineSpacing은 글꼴의 실체 크기 + 줄 간격의 공백 크기입니다
따라서 위의 그림처럼 줄의 중심에서 다음 줄의 중심은 30pt이다
http://gomaapps.blogspot.com/2015/07/sketch_20.html

line Spacing, line Height Multiple, Sketch의 line Spacing 약도



Xcode와 Sketch의 lineSpacing의 시작 줄의 점이 다르다



이상에 따라 Sketch의 lineSpacing에서FontSize의 값을 빼고 Xcode로 lineSpacing으로 지정해 보십시오.
그럼에도 불구하고 스케치에 비해 Xcode의 lineSpacing에서 텍스트의 시작 줄이 낮아졌다.

현실적 대응 방법


Xcode의 lineSpacing 지정(Sketch의 lineSpacing) - (글꼴 크기), UIlabel 자체의 Y Position을 lineSpacing의 절반으로 줄임

###그나저나 설치에서는 다음과 같은 UIlabel+Extension을 사용합니다.swift에서 지정한
UILabel+Extension.swift
extension UILabel {

    func setLineSpacing(lineSpacing: CGFloat = 0.0, lineHeightMultiple: CGFloat = 0.0) {

        guard let labelText = self.text else { return }

        let paragraphStyle = NSMutableParagraphStyle()
        paragraphStyle.lineSpacing = lineSpacing
        paragraphStyle.lineHeightMultiple = lineHeightMultiple

        let attributedString:NSMutableAttributedString
        if let labelattributedText = self.attributedText {
            attributedString = NSMutableAttributedString(attributedString: labelattributedText)
        } else {
            attributedString = NSMutableAttributedString(string: labelText)
        }

        // (Swift 4.2 and above) Line spacing attribute
        attributedString.addAttribute(NSAttributedString.Key.paragraphStyle, value:paragraphStyle, range:NSMakeRange(0, attributedString.length))


        // (Swift 4.1 and 4.0) Line spacing attribute
        attributedString.addAttribute(NSAttributedStringKey.paragraphStyle, value:paragraphStyle, range:NSMakeRange(0, attributedString.length))

        self.attributedText = attributedString
    }
}
참고 자료
https://stackoverflow.com/questions/39158604/how-to-increase-line-spacing-in-uilabel-in-swift/39158698
위에서 설명한 UIlabel+Extension을 사용했습니다.

좋은 웹페이지 즐겨찾기