안드로이드에는 Toast
라는 기능을 내장하고 있습니다. 창을 띄우지 않고, 작은 메시지만 바로 띄워서 문구를 보여주는 기능인데요. 예를 들어 뒤로 가기 버튼을 눌렀을 때, '한번 더 누르면 종료됩니다' 라고 뜨는게 바로 토스트 메시지이다.
스위프트는 토스트 기능 자체를 라이브러리화하고 있진 않은 듯 하다. 따라서 View를 새로 만들어 띄우는 방식으로 직접 프로그램을 짜서 해주는 듯 하다.
코드는 다음과 같다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
func showToast(message : String) {
let width_variable:CGFloat = 10
let toastLabel = UILabel(frame: CGRect(x: width_variable, y: self.view.frame.size.height-100, width: view.frame.size.width-2*width_variable, height: 35))
// 뷰가 위치할 위치를 지정해준다. 여기서는 아래로부터 100만큼 떨어져있고, 너비는 양쪽에 10만큼 여백을 가지며, 높이는 35로
toastLabel.backgroundColor = UIColor.black.withAlphaComponent(0.6)
toastLabel.textColor = UIColor.white
toastLabel.textAlignment = .center;
toastLabel.font = UIFont(name: "Montserrat-Light", size: 12.0)
toastLabel.text = message
toastLabel.alpha = 1.0
toastLabel.layer.cornerRadius = 10;
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()
})
}
|
cs |
원리는 단순하다. UILabel을 programmatic하게 만들어주고, 위치나 너비, 폭 등을 설정해준다. 여기에 투명도를 지정해주면 안드로이드의 Toast와 동일한 효과를 낼 수 있다.
'Developer > iOS, Swift' 카테고리의 다른 글
[Swift] 뒤에 배경이 보이는 팝업창 띄우기 (0) | 2019.12.13 |
---|---|
[Swift] 화면 스와이프 시, 뒤로가기 기능 구현하기 (0) | 2019.12.10 |
[Swift] TextView에도 Placeholder가 넣고 싶을 때? (0) | 2019.12.09 |
[Swift] UserDefaults로 디바이스에 데이터 저장하기 (0) | 2019.12.08 |
[Swift] 이미지에 Tint 색상 입히기 (programmatically) (0) | 2019.12.08 |
댓글