2012-04-28 101 views
0

我創建了一個自定義控件,它由兩層甜甜圈形狀組成。中間是一個按鈕,而甜甜圈部分是一個旋轉輪。在視圖中重疊UIControls

我已經創建了兩個部分作爲兩個單獨的UIControls與自己獨立的圖像。

我現在的問題是,Second Control覆蓋我的First Control

是否有一種編程方式重疊位置?

故事板截圖:

enter image description here

請專注於特定視圖稱爲buttonViewRotary knob是甜甜圈,Button是中間的按鈕。

在此先感謝。

回答

1

我假設你的甜甜圈部分比你的中間部分大,對不對?如果是這樣,我認爲你應該能夠使用hitTest:WithEvent:函數來區分這兩者。儘管您的中間部分需要位於層次結構的外部部分之下。 hitTest將返回被觸摸的層次結構中最深的視圖。

編輯根據擴展意見,問題是它們在XIB中被顛倒過來。切換它們,你的中間部分將出現在最上面。

+0

是的,甜甜圈的洞是第二個控件。我將深入研究'hitTest:WithEvent'。我剛剛經歷的另一件事是我的控制響應整個rectangel,這可能是一個問題,因此我的控制是循環的。但我認爲這是不可能解決的? – JavaCake 2012-04-28 15:38:39

+0

@JavaCake這是可能的,但你需要自己做計算。然後,您可以用您的計算覆蓋函數pointInside:withEvent:。 – borrrden 2012-04-28 15:41:35

+0

我的中間部分位於層次結構的頂部。 – JavaCake 2012-04-28 15:45:42

0

在包含它們的視圖中,只需撥打[self bringSubviewToFront:firstLayer]即可。

+0

我已更正了我記譜法中的錯誤。問題不是意見,而是控制的重疊。抱歉。 – JavaCake 2012-04-28 16:06:20

+0

我不明白這個問題。這些意見是一樣的大小?爲什麼不把內部控制變得更小並將其帶入字體? – lnafziger 2012-04-28 16:23:18