2012-01-13 59 views
1

我跟着使用AvFoundation框架拍攝照片的教程.. 所以我不精通它..就是一點。加載子視圖上方視圖的圖層

在應用程序..在筆尖。 有一個視圖(SUBVIEW)作爲主視圖(MAINVIEW)的子視圖。 還有一個圖像視圖和按鈕作爲子視圖(SUBVIEW)而不是主視圖的子視圖。

有一個在教程代碼(子視圖)

AVCaptureVideoPreviewLayer *captureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session]; 


    [self.vImagePreview.layer addSublayer:captureVideoPreviewLayer]; 

但應用這種圖像視圖之後,因爲它是在筆尖應該出現在不是在它前面的子視圖的背面.. 所以如何獲得圖像視圖出現在視圖前..vimagepreview是SUBVIEW

+0

我可能會誤解,但如果你正在尋找的意見,在Xcode筆尖編輯的順序,列出的最上面的觀點實際上是最遠的後面。因此,在Xcode nib編輯器的視圖列表底部的任何位置放置任何視圖。 – MechEthan 2012-01-13 18:16:44

+0

我做得正確。 imageviw作爲子視圖中的SUBVIEW添加。 – Shubhank 2012-01-13 18:25:49

回答

1

嘗試以編程方式創建一個新的觀點,加層,然後將視圖添加到子視圖。

AVCaptureVideoPreviewLayer *captureVideoPreviewLayer = [[AVCaptureVideoPreviewLayer alloc] initWithSession:session]; 
UIView *newView = [[UIView alloc] initWithFrame:SUBVIEW.bounds]; 
[newView.layer addSublayer: captureVideoPreviewLayer]; 
[SUBVIEW addSubview: newView]; 

這應該確保圖層在子視圖上方。

+0

謝謝,,這是有幫助的。 – Shubhank 2012-01-13 19:07:27

+0

如果你在這個新視圖上有任何觸摸按鈕!不起作用!將無法在iOS7上運行 – AsifHabib 2014-04-21 07:45:56

0

我想你需要把你的子視圖(圖像視圖容器視圖)在前面。

檢查了這一點:bringSubViewToFront:

其UIView類方法。

讓我知道這是否適用於你或不

+0

我試着把子視圖放到前面,但仍然是圖像視圖。 – Shubhank 2012-01-13 18:24:39

1

這將適用於iOS7和iOS8。

[videoPreviewLayerParentView.layer insertSublayer:videoPreviewLayer atIndex:0]; 
[videoPreviewLayerParentView.layer insertSublayer:aboveView.layer atIndex:1]; 
0

嘗試重新排序的z-index:

//subview to go infront 
frontView.layer.zPosition = 100 

//layer to go to back 
backLayer.zPosition = 0