我创建了一个UIButton
的子类。这个子类(BubbleBtn
)负责向按钮添加一个UIView
。
被添加的视图应该距离父按钮顶部、左侧和右侧6个点,同时占用父按钮高度的一半。
代码:
class BubbleBtn: UIButton {
override init(frame: CGRect) {
super.init(frame: frame)
addBubbleView()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
addBubbleView()
}
func addBubbleView() {
setNeedsLayout()
layoutIfNeeded()
let bubbleBuffer:CGFloat = 6
let bubble = UIView(frame: CGRect(x: bubbleBuffer, y: bubbleBuffer, width: self.frame.width - (bubbleBuffer * 2), height: (self.frame.height / 2)))
bubble.isUserInteractionEnabled = false
bubble.backgroundColor = UIColor(red: 1, green: 1, blue: 1, alpha: 0.5)
bubble.layer.cornerRadius = 10
bubble.layer.zPosition = -1
self.addSubview(bubble)
}
}
问题在于添加的
UIView
的宽度和高度不是正确的大小;对于较大的按钮,宽度和高度都太短了。我该如何将UIView添加到按钮上,以便气泡视图以正确的大小呈现?
下面是发布的屏幕截图: