使用iOS 13,迅速5。
[尝试掩盖UIButton中的文本,以便逐步显示。我创建了一个扩展,并设法在按钮上绘制视图,但是似乎无法弄清楚如何隐藏显示的文本。
例如,此代码清楚地在按钮上创建了一个UIView,看起来像这样。
这里是代码,UIButton的扩展
extension UIButton {
func coverWord() {
let frame = self.frame
let hider = UIView(frame: CGRect(origin: CGPoint(x: 0, y: 0), size: CGSize(width: 32, height: 64)))
hider.backgroundColor = UIColor.init(hue: 1, saturation: 1, brightness: 1, alpha: 1)
self.addSubview(hider)
self.bringSubviewToFront(hider)
}
现在我知道UIView在按钮上方,因为如果我触摸左侧[红色],我什么也没做,但是如果我触摸右侧[白色],它会按预期工作。
但是,如何获取愚蠢的UIView来掩盖文本。我尝试在隐藏的UIView中创建形状并使用此代码添加到其中。
let layer = CAShapeLayer()
layer.path = UIBezierPath(roundedRect: CGRect(x: 0, y: 0, width: 32, height: 64), cornerRadius: 0).cgPath
layer.fillColor = UIColor.green.cgColor
layer.fillMode = .forwards
hider.layer.addSublayer(layer)
这行得通,当然当然没有。不,它只是将[红色]部分涂成绿色。我仍然可以阅读按钮上的愚蠢文字。
当然,当我发布此问题后,答案就浮现了。与其删除它,不如将其张贴在这里以供后代使用:
func showWord() { let sizer = self.frame.size let hider = UIView(frame: CGRect(origin: CGPoint(x: 0, y: 0), size: sizer)) hider.backgroundColor = UIColor.white let sub = self.titleLabel sub!.addSubview(hider) sub!.bringSubviewToFront(hider) self.addSubview(hider) self.bringSubviewToFront(hider) UIView.animate(withDuration: 4, animations: { hider.alpha = 0 }) { ( _ ) in hider.removeFromSuperview() } }
UIButton中的文本是其中的UILabel。我需要向其中添加UIView来隐藏标签,并向按钮添加按钮以掩盖按下按钮时的操作。
Xcode中有一个视图,向您显示子层。这就是我要做的所有工作来找出解决方案。