티스토리 뷰

안녕하세요. 

 

뭔가 통신이나 다른 부분에 대해 올리고 싶은데 자꾸 일이 생겨서 간단한 것만 올리게 되네요;;

 

이번에는 안드로이드 개발자 분들이라면 한번씩 써봤을 Toast 메세지 를 만들어볼까 합니다.

 

# Toast Message 가 뭔가요?

- 일반적으로 화면 하단에 검정색 반투명한 글씨창이 뜨는걸 말합니다. 

- 아래 사진의 화면 하단에 검은색 창을 의미합니다. 

 

맨 밑에 반투명한 검정색 창이 Toast 입니다.

#코드

- 원리는 글자 사이즈를 구해서 양 옆을 조금 늘린 사이즈로 창을 띄우는 방식입니다. 

 func getTextSize(text : String,font: UIFont)->CGSize{// 글자 사이즈 계산용
    let fontAttributes = [NSAttributedString.Key.font: font]
    let text = text
    let size = (text as NSString).size(withAttributes: fontAttributes as [NSAttributedString.Key : Any])
    return size // 여기서 나오는 사이즈를 기반으로 크기가 결정됩니다.
}
func showToastMessage(self: UIViewController,font: UIFont,message : String){
    let customSize = getTextSize(text: message, font: font)
    let customWidth = customSize.width + 40 // 줄이시면 좌우 여백이 줄어듭니다.
    let toastLabel = UILabel(frame: CGRect(x: self.view.frame.size.width/2 - customWidth/2, y: self.view.frame.size.height-100, width: customWidth, height: customSize.height+32))
    toastLabel.backgroundColor = UIColor.black.withAlphaComponent(0.6)
    toastLabel.textColor = UIColor.white
    toastLabel.font = font
    toastLabel.textAlignment = .center
    toastLabel.text = message
    toastLabel.alpha = 1.0
    toastLabel.layer.cornerRadius = 8; // 좀더 둥글둥글한걸 원하시면 늘리시면됩니다.
    toastLabel.clipsToBounds  =  true
    self.view.addSubview(toastLabel)
    UIView.animate(withDuration: 4.0, delay: 0.1, options: .curveEaseOut, animations: {
         toastLabel.alpha = 0.0
    }, completion: {(isCompleted) in
        toastLabel.removeFromSuperview()
    })
}

 

#사용법

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        self.showToastMessage(self: self, font: UIFont.systemFont(ofSize: 10), message: "내가 바로 Toast")
        // 원하시는 곳에 넣어주시면 됩니다.
    }
}

이렇게 원하시는 폰트와 문구를 넣으면 위 화면처럼 작동하게 됩니다. 

 

해당 코드는 아래 글을 참고해서 만든 코드입니다. 

참고해주시길 바랍니다.

https://royhelen.tistory.com/46

 

[iOS/Swift] Toast Message 만들기

이번 포스팅은 Toast Message를 만드는 방법을 포스팅하겠습니다~ 일단 Toast 메시지가 뭔지부터 보여드리겠습니다~ 바로 이것입니다. 기본적으로 Toast Message를 띄우는건 안드로이드에서는 자체 라이

royhelen.tistory.com

 

안드로이드에서는 간단한 부분이지만 

iOS 는 별도로 만들어야 하는 부분이기도 하고

생각보다 자주 쓰이는 부분이라 올려 봅니다. 

 

(참고로 저는 여백이 두툼한게 좋아서 저렇게 생긴거라 얇은 게 좋으신 분들은 숫자를 바꾸면 쉽게 조절할 수 있습니다.)

 

누군가에게 도움이 되길 바라며 

오늘도 파이팅입니다. 

댓글