[swift] NotificationBanner 알림창 메시지 라인 수 제한

iOS 앱을 개발할 때 알림창을 만들어 사용해야 할 때가 많습니다. NotificationBanner라는 라이브러리를 사용하면 편리하게 알림창을 구현할 수 있습니다. 하지만 알림창의 메시지가 많은 경우에는 글이 너무 길어져 사용자에게 보기 어려울 수 있습니다. 이러한 경우에 알림창의 메시지를 일정한 라인 수로 제한하는 방법에 대해 알아보겠습니다.


라이브러리 설치

먼저 NotificationBanner 라이브러리를 설치해야 합니다. CocoaPods를 사용한다면 Podfile에 다음과 같이 추가합니다.

pod 'NotificationBanner'

설치가 완료되면 Xcode에서 프로젝트를 다시 빌드합니다.


라인 수 제한 구현

NotificationBanner는 텍스트를 입력할 수 있는 UILabel을 사용하는데, 이 라벨의 높이를 조절하여 메시지의 라인 수를 제한할 수 있습니다. 아래는 메시지를 2줄로 제한하는 예제 코드입니다.

import NotificationBanner

func showNotificationBanner() {
    let banner = NotificationBanner(title: "알림",
                                    subtitle: "알림창 메시지 길이를 2줄로 제한하는 예제입니다.",
                                    style: .info)
    banner.show(bannerPosition: .top, cornerRadius: 10, shadowColor: .black)
    
    guard let notificationLabel = banner.titleLabel else {
        return
    }
    
    notificationLabel.numberOfLines = 2
    let labelFrame = notificationLabel.frame
    notificationLabel.frame = CGRect(x: labelFrame.origin.x,
                                     y: labelFrame.origin.y,
                                     width: labelFrame.size.width,
                                     height: notificationLabel.font.lineHeight * 2)
}

알림창의 메시지를 제한하려면, notificationLabel.numberOfLines 속성을 원하는 라인 수로 설정하면 됩니다. 위 예제에서는 2로 설정했습니다.

또한, 라벨의 높이를 notificationLabel.font.lineHeight2를 곱하여 설정하면 됩니다. 이렇게 하면 텍스트의 라인 수를 높이로 변환하여 알림창의 높이를 조절할 수 있습니다.


추가 사항


참고 자료