2015-12-19 1 views
3

Я пытаюсь добавить изображение "resizeLayer" над моей UIView selectedShape по sublayering его на selectedShapeSublayer не появляется после того, как добавить его

let sublayer = CALayer() 
sublayer.bounds = selectedShape.bounds //even when inserted this line, sublayer still doesn't show up 
sublayer.frame = selectedShape.frame 
sublayer.contents = UIImage(named: "resizeLayer") 
selectedShape?.layer.addSublayer(sublayer) 

Но когда я запускаю мой код, я не вижу слой на все

Я даже пытался subviewing изображение "resizeLayer" над UIView "selectedShape"

let resizeFrame = UIImageView(image: UIImage(named: "resizeLayer")) 
resizeFrame.frame = selectedShape.frame 
resizeFrame.contentMode = UIViewContentMode.ScaleAspectFill 
selectedShape.addSubview(resizeFrame) 

Но все же, "resizeLayer" не появляется!

Это показывает только, если я добавляю "resizeLayer" к общему мнению:

let resizeFrame = UIImageView(image: UIImage(named: "resizeLayer")) 
resizeFrame.frame = selectedShape.frame 
resizeFrame.contentMode = UIViewContentMode.ScaleAspectFill 
selectedShape.addSubview(resizeFrame)  
self.view.insertSubview(resizeFrame, aboveSubview: selectedShape) //add this line 

Любая помощь по этому вопросу будет очень признателен!

Если это уместно, это как я сделал selectedShape

selectedShape = UIView(frame: CGRect(x: 0, y: 0, width: 60, height: 60)) 
selectedShape.layer.cornerRadius = 10 
selectedShape.backgroundColor = UIColor.blueColor() 
canvas.addSubview(selectedShape) //canvas is the view I'm adding selectedShape to 

This is the image "resizeLayer" that I'm trying to add

Синий квадрат selectedShape. As you can see the layer is not showing up.

What I want to happen

ответ

3

Вы используете весь кадр для selectedShape. Вы должны использовать только width и height, так как x и y должны быть ноль. Изображение добавляется к selectedShape, поэтому точка (0,0) находится в верхнем левом углу окна selectedShape.

resizeFrame.frame = CGRect(origin: CGPointZero, size: selectedShape.frame.size) 

Я признаю, что это остановило меня дольше, чем следовало бы.

+0

он работает спасибо! – 14wml

0

Я думаю, вы должны отправить selectedView обратно:

canvas.sendSubviewToBack(selectedShape) 
+0

Он не хочет добавлять 'resizeImage' к холсту. – Caleb

1

Не совсем ответ на его проблему, но связал и спас бы мне время, если бы кто-то написал это здесь раньше. Таким образом, в надежде, чтобы помочь кому-то и составить более полный список проблем и их решения:

Вызов addSublayer должен быть сделан из основного-нить ...

Самое смешное, если вы делаете это из рабочий-поток, который все еще отображается в представлении-hirarchy-debugging с содержимым, которое вы установили, но оно не отображается ...

 Смежные вопросы

  • Нет связанных вопросов^_^