Speech Bubble view you can attach to the top of other views.
Styles (padding, corner radius, border width, etc) adjust automatically depending on the font size.
let bubbleView = SpeechBubble(baseView: buttonView, text: "Yay! Bark!", fontSize: 16.0)
parentView.addSubview(bubbleView)
It's a library developed for Bark project: Bark - Don't speak, Let's bark!.
This code is available under the MIT license.