ToastMessageLibrary.
작성일
Toast-Swift
https://github.com/scalessec/Toast-Swift
위 라이브러리를 사용하는데 이미지의 크기가 내 마음내로 조정이 되지않았다.
나는 작게 하고싶은데 여기선 자꾸 고정값으로 나와버렸다.
내가 원하는 사이즈를 만들기 위해 라이브러리에 들어가서 직접 손봤다.
나머진 너무 어려워서 간단한것만 바꿔보았다.
public struct ToastStyle {
public init() {}
/**
The background color. Default is `.black` at 80% opacity.
*/
// 배경색상
public var backgroundColor: UIColor = .toastColor
우선 배경 색상을 변경해주었고,
*/
// 토스트메세지 크기
public var horizontalPadding: CGFloat = 55.0
/**
The spacing from the vertical edge of the toast view to the content. When a title
is present, this is also used as the padding between the title and the message.
Default is 10.0. On iOS11+, this value is added added to the `safeAreaInset.top`
and `safeAreaInsets.bottom`.
*/
// 토스트메세지 높이
public var verticalPadding: CGFloat = 22.0
/**
The corner radius. Default is 10.0.
*/
// 코너
public var cornerRadius: CGFloat = 16.0;
토스트 메세지의 크기 값을 조정해주었다.
이 Padding값으로 다른함수들의 여러가지 크기가 조정된다.
내가 찾던 이미지 사이즈를 찾았다
/**
The image size. The default is 80 x 80.
*/
public var imageSize = CGSize(width: 20.0, height: 20.0)
이부분 원랜 80*80 이였지만, 난 20으로 사용하고싶어서 줄였다.
이지와 라벨의 간격을 설정해주었다.
if let imageView = imageView {
// 이미지와 라벨의 간격
imageRect.origin.x = 20
imageRect.origin.y = style.verticalPadding
imageRect.size.width = imageView.bounds.size.width
imageRect.size.height = imageView.bounds.size.height
}
마지막으로
public enum ToastPosition {
case top
case center
case bottom
// 포지션 사이즈
fileprivate func centerPoint(forToast toast: UIView, inSuperview superview: UIView) -> CGPoint {
let topPadding: CGFloat = ToastManager.shared.style.verticalPadding + superview.csSafeAreaInsets.top
// let bottomPadding: CGFloat = ToastManager.shared.style.verticalPadding + superview.csSafeAreaInsets.bottom
switch self {
case .top:
return CGPoint(x: superview.bounds.size.width / 2.0, y: (toast.frame.size.height / 2.0) + topPadding)
case .center:
return CGPoint(x: superview.bounds.size.width / 2.0, y: superview.bounds.size.height / 2.0)
case .bottom:
return CGPoint(x: superview.bounds.size.width / 2.0, y: (superview.bounds.size.height - (toast.frame.size.height / 2.0)) - 150)
}
}
}
바텀을 사용하는데 safearea값에 붙어있길래 150을 고정으로 주었다.