我有一個比超級視圖更小的UIView,所以我可以在單擊按鈕時將此視圖表示爲模式視圖。在模式UIView後面的UIView上禁用元素
我已經設法做到以下幾點: *添加子視圖到超級視圖。 *以此模式視圖爲中心
我現在試圖使UIView背後的元素不可點擊。並且在我的模態視圖的位置添加一個灰色陰影,以便用戶理解模態視圖是焦點視圖。
我想知道如何做到這一點。
我不想使用演示模式轉換。我知道並且已經在其他項目中實現了這一點。 任何幫助表示讚賞。
我有一個比超級視圖更小的UIView,所以我可以在單擊按鈕時將此視圖表示爲模式視圖。在模式UIView後面的UIView上禁用元素
我已經設法做到以下幾點: *添加子視圖到超級視圖。 *以此模式視圖爲中心
我現在試圖使UIView背後的元素不可點擊。並且在我的模態視圖的位置添加一個灰色陰影,以便用戶理解模態視圖是焦點視圖。
我想知道如何做到這一點。
我不想使用演示模式轉換。我知道並且已經在其他項目中實現了這一點。 任何幫助表示讚賞。
最簡單的情況是在「模態」視圖後面放置一個帶半透明灰色背景的全屏UIView
。然後它會攔截所有的觸摸。它可能是這個樣子:
UIView *dimBackgroundView = [[UIView alloc] initWithFrame:theSuperview.bounds];
dimBackgroundView.backgroundColor = [[UIColor grayColor] colorWithAlphaComponent:.5f];
[theSuperview addSubview:dimBackgroundView];
[theSuperview addSubview:modalView];
對於未來的參考,你可以設置myView.userInteractionEnabled = NO
禁用視圖上的觸摸事件。
有幾種方法可以做到這一點。 如果您有定製位置自定義視圖,你可以修改它這樣的:
創建實例var
:
UIView* backgroundView;
,只要你需要它,把它放在你的自定義視圖背後:
if (backgroundView == nil)
backgroundView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.height, [UIScreen mainScreen].bounds.size.width)];
backgroundView.backgroundColor = [[UIColor grayColor] colorWithAlphaComponent:.5f];
[self.view addSubview:backgroundView];
[backgroundView animateBump:customView.view];
[backgroundView addSubview:customView.view];
當你不再需要它了
[backgroundView removeFromSuperview];