Reputation: 114
i wants to add a uiview insdie my CAlayer,i tried and I don't get correct answer,help me..my codes are
var sublayer = CALayer()
sublayer.backgroundColor = UIColor.clearColor().CGColor
sublayer.shadowOffset = CGSizeMake(0, 3)
sublayer.shadowRadius = 5.0
sublayer.shadowColor = UIColor.clearColor().CGColor
sublayer.shadowOpacity = 0.8
sublayer.frame = CGRectMake(X,Y,WIDTH,HEIGHT)
sublayer.borderColor = UIColor.yellowColor().CGColor
sublayer.borderWidth = 2.0
sublayer.cornerRadius = 10.0
StrikezoneImg.layer.addSublayer(sublayer)
let Hitpoint:CGPoint = TOUCHPOINT
let hitView = UIView(frame: CGRect(x:0, y:0, width: 15, height: 15))
hitView.center = CGPoint(x: Hitpoint.x, y: Hitpoint.y)
hitView.layer.cornerRadius = 8.0
hitView.backgroundColor = UIColor.greenColor()
mainImage.addSubview(hitView)
var imageLayer = CALayer()
imageLayer.frame = sublayer.bounds
imageLayer.cornerRadius = 10.0
imageLayer.contents = hitView//(UIImage(named: "clock")!.CGImage as! AnyObject)
imageLayer.masksToBounds = true
sublayer.addSublayer(imageLayer)
Upvotes: 1
Views: 76
Reputation: 12910
Change your last line of code:
sublayer.addSublayer(imageLayer)
to
StrikezoneImg.layer.addSublayer(imageLayer)
as you should add sublayers to your UIView/UIImageView, not to CALayer.
Upvotes: 0
Reputation: 11
I copied your code. here's what i see. i don't know if you need it.
let StrikezoneImg = UIImageView()
StrikezoneImg.frame = self.view.bounds
self.view.addSubview(StrikezoneImg)
let sublayer = CALayer()
sublayer.backgroundColor = UIColor.clearColor().CGColor
sublayer.shadowOffset = CGSizeMake(0, 3)
sublayer.shadowRadius = 5.0
sublayer.shadowColor = UIColor.clearColor().CGColor
sublayer.shadowOpacity = 0.8
sublayer.frame = CGRectMake(100,110,200,200)
sublayer.borderColor = UIColor.purpleColor().CGColor
sublayer.borderWidth = 2.0
sublayer.cornerRadius = 10.0
StrikezoneImg.layer.addSublayer(sublayer)
Upvotes: 1