2017-05-26 155 views
0

我有以下佈局。 enter image description herebringSubview(toFront :)似乎不工作

我想要實現的是使黃色子視圖成爲圓形並將其帶到前面。我試過self.view.bringSubview(toFront:yellowView),但似乎沒有按照我的預期工作。我怎樣才能解決這個問題?編輯 對不起,缺少細節

所以在根視圖上,我有兩個子視圖,頂部和底部。 現在底部部分是空的,但頂部部分包含一個與頂部相同大小的imageview和一個圓UIView。

所以我想要的是把底部的圓圈UIView放在前面。

+0

您的黃色視圖是視圖還是imageView的子視圖? – vacawama

+0

@vacawama有一個包含圖像視圖和圓形視圖的容器視圖。我只是將圖像視圖設置爲與其父視圖相同的大小。 – eChung00

+2

您需要提供更多詳細信息......生成Circle的代碼是什麼?什麼是視圖層次結構?圓圈,黃色方塊和圖像是否查看單個UIView的所有子視圖?還是所有的個人意見?什麼是灰色的矩形?另一種看法?如果你沒有解釋你有什麼...... – DonMag

回答

1

您的問題是圓UIView不是根視圖的孩子,但在頂視圖的孩子。爲了使圓圈出現在底部視圖的前面,請重新排列您的視圖層次結構。

使圓圈UIView成爲根視圖的子項。然後,您可以使用所顯示的代碼將其帶到其他視圖的前面。實際上,如果您將圓形視圖UIView作爲根視圖的最後一個子視圖,它將出現在根視圖的所有子視圖的前面。

需要的視圖層次:

Root View 
    - Top View 
     - UIImageView 
    - Bottom View 
    - Circle View 

文檔大綱,拖動圈查看和拖放到根查看

enter image description here

+0

謝謝。但是你知道爲什麼以前的嘗試不起作用嗎?即使我將clipsToBound設置爲false? – eChung00

+0

是的。底視圖在頂視圖和所有的孩子面前。由於它沒有覆蓋頂視圖,UIImage顯示,但延伸到底部區域的圓被底部視圖覆蓋。 – vacawama

+0

因此,您可以將頂部視圖置於根視圖的前部,然後將圓形視圖置於頂部視圖的前部。但是,我仍然認爲圓視圖最好是以根視圖爲父視圖。 – vacawama

0

設置clipBounds屬性爲false的UIImageView:

self.imageView.clipsToBounds = false 
+0

這不工作?在問題中我沒有提到的一件事是容器視圖包含圖像視圖和圓形視圖。我試過容器視圖和圖像視圖設置clipsToBounds錯誤,它不起作用。 – eChung00

0

如果你circleViewimageViewcontainerView subview那就試試這個代碼。

self.containerView.bringSubview(toFront:yellowView) 
+0

你能看看我編輯過的原始問題嗎?謝謝。 – eChung00