我有一個mainView
,在這裏我正在繪製讓我們在後臺說一張圖片。 mainView
也有3 subviews
,它們可以相互拖拽。 subviews
是正方形,clearColor
背景和redColor
幀。問題是如果一個視圖被拖到第二個視圖上,我可以在第一個視圖的下面看到第二個視圖。我想刪除它(只有部分重疊),但不知道如何去做。我在下面的截圖中介紹它。擦除子視圖的一部分
在左邊有目前的情況,在右邊 - 所需的一個。是否有可能刪除子視圖的一部分..?
我有一個mainView
,在這裏我正在繪製讓我們在後臺說一張圖片。 mainView
也有3 subviews
,它們可以相互拖拽。 subviews
是正方形,clearColor
背景和redColor
幀。問題是如果一個視圖被拖到第二個視圖上,我可以在第一個視圖的下面看到第二個視圖。我想刪除它(只有部分重疊),但不知道如何去做。我在下面的截圖中介紹它。擦除子視圖的一部分
在左邊有目前的情況,在右邊 - 所需的一個。是否有可能刪除子視圖的一部分..?
這樣很自定義效果有時更容易在一個視圖中的-drawRect
的方法做,否則這部分擦除需要接壤RECT瞭解其他視圖。繪製底部矩形的邊框,然後擦除頂部矩形,然後繪製頂部矩形的邊框。您也可以使用多個CGLayers進行混合,以獲得類似的效果,並且抽象化一些。
如果你有一個清晰的背景色,這是透明的,這就是爲什麼你的視圖正在窺視。將其更改爲[UIColor whiteColor]。
但我寫過這個問題,我的背景有一個漸變。我不想要任何白色疊加,也不需要任何Alpha值。有了這樣的想法,我寧願使用子視圖來窺視它們,而不是讓它們變成白色。這不是一個解決方案,但繞過它沒有修復。 – Vive 2014-10-02 15:37:54
我簡化了整個想法,實際上這些子視圖相當複雜,一切都在'drawRect'中繪製。我不想將它合併到一個視圖,因爲它會變得非常混亂。這就是爲什麼我要問擦除子視圖。不過,謝謝你的答案。 – Vive 2014-10-02 13:43:18
然後您的視圖可以知道每個其他視圖,並使用drawRect擦除其上方的每個其他視圖的區域,並將其轉換爲局部座標。 – 2014-10-03 11:40:24