Today 7/30
StartScreen부분 디테일 보완을 진행했다.
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 적용 후에)
appDelegate - didFinishLaunchingWithOptions에 추가하면 끝
Thread.sleep(forTimeInterval: 2.0)
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
}
}
}
backButton의 color, title을 바꾸려하는데, 예전에는 storyboard에서 다 해결해주어서 코드로 하는 법이 필요했다.
push해준 ViewController에서 바꾸는 방법과, 자체 ViewController에서 바꿔주는 방법 두 가지가 있다.
// Title
let backBarButtonItem = UIBarButtonItem(title: "", style: .plain, target: self, action: nil)
// Color
backBarButtonItem.tintColor = .gray
self.navigationItem.backBarButtonItem = backBarButtonItem
// Color
self.navigationController?.navigationBar.tintColor = .green
// Title
self.navigationController?.navigationBar.topItem?.title = ""