2013-01-06 35 views
1

我加入一個CALayer作爲子層的UIViewlayer屬性,如下所示:將子圖層添加到view.layer會更改幀的位置?

_graphicLayer = [[GraphicLayer alloc] init]; 
     self.bounds = _graphicLayer.bounds; 
     _graphicLayer.position = CGPointMake(CGRectGetMidX(self.bounds), CGRectGetMidY(self.bounds)); 
     [self.layer addSublayer:_graphicLayer]; 

正如你所看到的,我改變位置_ graphicLayer佔居中anchorPoint。我注意到添加了這個子圖層後,它將視圖frame更改爲(-self.bounds.width/2, -self.bounds.height/2)。這是爲什麼發生?如果我改變_ graphicLayer的位置,我認爲這只是相對於其父視圖。爲什麼會影響frame屬性的意見? (我不想調整視圖圖層屬性或_graphicLayer的anchorPoint)。

回答

2

你目前做

self.bounds = _graphicLayer.bounds; 

這將改變視圖的(自我的)框架,因爲它會改變的寬度和高度。也許你的意思做:

_graphicLayer.bounds = self.bounds; 

在這裏看到有關邊界如何影響框架:Link

相關問題