CALayer ที่มีรูใสอยู่
ฉันมีมุมมองที่เรียบง่าย (ด้านซ้ายของภาพ) และฉันต้องการสร้างภาพซ้อนทับ (ด้านขวาของภาพ) ให้กับมุมมองนี้ ภาพซ้อนทับนี้ควรมีความทึบแสงดังนั้นการมองเห็นจึงยังคงมองเห็นได้บางส่วน ที่สำคัญที่สุดการวางซ้อนนี้ควรมีรูวงกลมตรงกลางเพื่อไม่ให้ซ้อนทับตรงกลางของมุมมอง (ดูภาพต่อไปนี้) ฉันสามารถสร้างวงกลมได้ง่ายๆดังนี้: int radius = 20; //whatever CAShapeLayer *circle = [CAShapeLayer layer]; circle.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0,radius,radius) cornerRadius:radius].CGPath; circle.position = CGPointMake(CGRectGetMidX(view.frame)-radius, CGRectGetMidY(view.frame)-radius); circle.fillColor = [UIColor clearColor].CGColor; และภาพซ้อนทับแบบ "เต็ม" แบบนี้: CAShapeLayer *shadow = [CAShapeLayer layer]; shadow.path = [UIBezierPath bezierPathWithRoundedRect:CGRectMake(0, 0, view.bounds.size.width, view.bounds.size.height) cornerRadius:0].CGPath; shadow.position …