我剛剛開始學習iOS GUI後,一般在最後幾周後端的東西和Objective-C的學習。我已經偶然發現了一個我已經設法解決的棘手的情況,但我想知道是否有更好的方法來解決它。UIView上UIBiew背後的兩個其他UIViews反應觸及上述視圖
這裏是我是如何分層我的UIViews:
[self.view.layer insertSublayer:_topView.layer above:self.view.layer];
[self.view.layer insertSublayer:_bottomView.layer above:self.view.layer];
所以我有「基地」視圖和單一視圖控制器。在這個視圖中,我有兩個子視圖:topView和bottomView。我已經能夠像我想要的那樣操縱這些視圖的來源,但即使它們位於我的UIButton面前,它也會觸摸。
我解決了這個問題,通過檢查其中一個子視圖的起點的y軸(無論哪一個)來確保該按鈕被顯示並因此激活它(或啓用用戶交互)。
if (_topView.frame.origin.y == 0) {
self.refreshButton.userInteractionEnabled = NO;
} else {
self.refreshButton.userInteractionEnabled = YES;
}
我個人不喜歡這種解決方案,並想知道有什麼更好的辦法來解決,這是。
任何人都可以指向正確的方向,這樣我就可以讓這個圖層業務在這裏和那裏不被醜陋的黑客入侵嗎?
我正在使用Xcode 5.0的故事板。
乾杯!
不要覺得這是一個破解,這是一個完美的方式來完成你想要做的事情。只要感覺冗長冗長,你的另一種選擇將會受到打擊 - 測試視圖並處理NSSet觸摸,這看起來好像比你在這裏做的事更有效。 –