我目前在Swift中有一个UIView,背景颜色为红色,黑色轮廓内有UILabel。
以下是我的代码:
import UIKit
@IBDesignable
class AdventDoor: UIView
{
@IBInspectable var shapeColor:UIColor = UIColor.blackColor()
var width:CGFloat?
required init(coder aDecoder: NSCoder) {
//Initilse UIView
super.init(coder: aDecoder)!
//Create UILabel
let dateLabel:UILabel = UILabel(frame: CGRect(x: (bounds.width-25)-5, y: 3, width: 25, height: 20))
dateLabel.textAlignment = NSTextAlignment.Right
dateLabel.text = self.restorationIdentifier!
//Show the UILabel
self.addSubview(dateLabel)
}
override func drawRect(rect: CGRect) {
let drect = CGRect(x:0, y:0, width: bounds.width, height: bounds.height)
let bpath:UIBezierPath = UIBezierPath(rect: drect)
shapeColor.setFill()
bpath.lineWidth = 5
bpath.fill()
bpath.stroke()
}
}
注意:UIView可能不会在StoryBoard上显示设计。要查看@IBDesignable,您需要注释掉init函数。
如何将UILabel的填充颜色设置为像滑动门一样关闭?我不希望轮廓(stroke
)改变宽度,但我确实希望内部移动?
这就是我想要发生的事情:
目前我的UIView看起来像这样
我希望它最终看起来像是
在动画中间,我希望它看起来像这样
如何使用Core Graphics(或任何其他库,如果需要)实现此类动画