UILabel LineSpacing - AttributedString, Animate, BackButton

Choong Won, Seo·2022년 7월 30일
0

mdoc

목록 보기
6/8
post-thumbnail

Today 7/30

StartScreen부분 디테일 보완을 진행했다.

LineSpacing

extension UILabel {
    func addLineSpacing(_ spacingValue: CGFloat = 2) {
        guard let textString = text else { return }
        let attributedString = NSMutableAttributedString(string: textString)
        let paragraphStyle = NSMutableParagraphStyle()
        paragraphStyle.lineSpacing = spacingValue
        attributedString.addAttributes([.paragraphStyle: paragraphStyle], range: NSRange(location: 0, length: attributedString.length))
        attributedText = attributedString
    }
}

[ios] Swift에서 UILabel의 줄 간격을 늘리는 방법

attributeString에 addAttributes를 통해서 lineSpacing을 넣어준다.

lineSpacing은 paragraphStyle의 인스턴스로 존재한다.

font나 color, alignment등은 기존 방식대로 적용해주면 된다. (attributeString 적용 후에)

LaunchScreen Delay

appDelegate - didFinishLaunchingWithOptions에 추가하면 끝

Thread.sleep(forTimeInterval: 2.0)

AnimateKeyFrames

animate는 전에 많이 사용해보았는데, completion 없이 여러 요소들을 한 번에 animate시키고 싶어서 찾아봤는데 animateKeyframes라는 함수가 있었다.

startTime과 duration만 정해주면 정해진 시간을 쪼개서 animate되어서 정말 편리하다고 생각한다.

func fadeInAnimation() {
    UIView.animateKeyframes(withDuration: 3, delay: 0) {
        UIView.addKeyframe(withRelativeStartTime: 0, relativeDuration: 1/4) {
            self.mdocLogo.alpha = 1
        }
        UIView.addKeyframe(withRelativeStartTime: 0, relativeDuration: 2/4) {
            self.mainLabel.alpha = 1
        }
        UIView.addKeyframe(withRelativeStartTime: 0, relativeDuration: 3/4) {
            self.subLabel.alpha = 1
        }
        UIView.addKeyframe(withRelativeStartTime: 1/3, relativeDuration: 1) {
            self.startButton.alpha = 1
        }
    }
}

[Swift] Animation

backButton의 color, title을 바꾸려하는데, 예전에는 storyboard에서 다 해결해주어서 코드로 하는 법이 필요했다.

push해준 ViewController에서 바꾸는 방법과, 자체 ViewController에서 바꿔주는 방법 두 가지가 있다.

  1. Push VC에서 변경
// Title
let backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: self, action: nil)
// Color
backBarButtonItem.tintColor = .gray
self.navigationItem.backBarButtonItem = backBarButtonItem
  1. 자체 VC에서 변경
// Color
self.navigationController?.navigationBar.tintColor = .green
// Title
self.navigationController?.navigationBar.topItem?.title = ""

iOS ) NavigationController BackButton 색상, 텍스트 바꾸기

profile
UXUI Design Based IOS Developer

0개의 댓글