【发布时间】:2019-04-15 08:47:20
【问题描述】:
我创建了一个自定义类,可以将徽章添加到 UIButton。徽章本身是一个 UIImageView。按钮的每个状态可以有不同的 UI;当按钮被禁用时,它有一个清晰的背景,它显示一个边框和标题,如下图所示。
如您所见,徽章显示在边框后面,但我想将徽章放在边框上方。我试图通过将徽章图层的 zPosition 设置为例如9999. 我还尝试使用bringSubviewToFront 方法将徽章放在前面。两种方法都不起作用。 我将徽章添加到按钮的代码是这样的:
private func addBadgeImageToButton() {
// badgeImage is a string containing the imageName
guard badgeImage != nil else {
return
}
badgeImageView = UIImageView(image: UIImage(named: badgeImage!))
// This line merely adjusts the position of the UIImageView
badgeImageView!.frame = adjustedRectangleForBadge(initialSize: badgeImageView!.frame.size)
badgeImageView!.layer.zPosition = 9999
addSubview(badgeImageView!)
// This line does not seem to work
//self.bringSubviewToFront(badgeImageView!)
// Adding these two lines won't do the trick either
self.setNeedsLayout()
self.layoutIfNeeded()
}
谁能帮我解决这个小问题?非常感谢任何帮助!
【问题讨论】:
-
badgeImageView.superview?.bringSubviewToFront(badgeImageView)
标签: ios swift button badge zposition