[英]How to center a CGImage on a CALayer?
我試圖將UIImage
的CGImage
為layer
的內容,然后將該layer
添加到view
的layer
。
黃色視圖的中心應該是五顆星。 那就是我想要的。
但似乎恆星的中心與view
的origin
對齊。 我該怎么做才能糾正它?
func putOnStars() {
let rect = UIView(frame: CGRect(x: 0, y: 0, width: UIScreen.main.bounds.width, height: UIScreen.main.bounds.height))
rect.backgroundColor = .yellow
view.addSubview(rect)
let baseLayer = CALayer()
baseLayer.contents = UIImage(named: "stars")?.cgImage
baseLayer.contentsGravity = kCAGravityCenter
rect.layer.addSublayer(baseLayer)
}
baseLayer
沒有定義的框架,因此baseLayer.contentsGravity = kCAGravityCenter
可以正常工作,但仍位於位置(0,0)。
有兩種可能的解決方案:
1:制作一個與rect
相同的baseLayer
框架。 實現此代碼:
baseLayer.frame = rect.frame
2:將baseLayer
的位置設置為rect
的中心。 實現此代碼:
baseLayer.position = rect.center
要將stars
image
放置在CALayer
的中心,請給出圖層的frame
,即
let baseLayer = CALayer()
baseLayer.frame = rect.bounds //This Line
baseLayer.contents = UIImage(named: "stars")?.cgImage
baseLayer.contentsGravity = kCAGravityCenter
rect.layer.addSublayer(baseLayer)
對於任何種類的CALayer
,您都需要顯式定義其frame
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.