2017-04-04 70 views
2

出於某種原因,我想知道我究竟可以通過故事板編程實施彈出在Xamarin.iOS。如何透過故事板彈出(XIB?)和編程Xamarin.iOS


在當前時刻,我做很簡單的解決方法:

內部設計師,我下探附加視圖(如彈出式),並配置一樣,
MyPopupView.Hidden = true;

經過一些步驟(NVM),我展示經由

MyPopupView.Hidden = false;

甲這個彈出ND的結果是:
enter image description here

是啊,這是不好的,非常貧窮的做法,因爲如果有什麼需要這些傢伙5或更多?
我將無法設計我的ViewController,因爲它會塞滿這些視圖。
此外,由於某種原因,我想顯示箭頭(見下圖)和shadow(彈出式之外)爲更好的可用性。


,這正是我想做的事:
enter image description here

或這一個(但裏面的,我想提出如我的廈門國際銀行或VC,在那裏我可以減少一些其他的看法,如.gif注意動畫):
enter image description here

或這一個:
enter image description here

最後,我想要什麼(這個是驚人的):
enter image description here


主要主意,用故事板(讓生活輕鬆與約束和自動版式工作),但也許它可以通過編程的實現相同。

我認爲這是可能做到這一點與UIAlertController,只需要插入我們查看,但說不上是正確的做法。

感謝您的任何建議。

回答

3

您發佈的最後兩張圖片可以使用故事板完成。

基本上,您要做的是在故事板中創建一個單獨的場景/視圖控制器,並將其演示文稿屬性設置爲「過當前上下文」enter image description here enter image description here

或者你可以設置SEGUE「顯示模態」和SEGUE到表現特性「在目前情況下」在Xcode

enter image description here

(出於某種原因,「在當前上下文「選項不會出現在Xamarin Studio中(至少不在Xamarin Studio 6中),並且當您在XS中打開它時,它將在presentation屬性中顯示」創建此條目時出現錯誤「消息,但它仍應該工作)。

下一步是將根視圖設置爲透明(背景顏色= 清除顏色),然後用您的內容創建子視圖。

enter image description here

如果你想那麼半透明疊加影響,你可以做的是有兩個「兄弟」子視圖一個與您的內容(同前),其被約束到第二視圖根視圖的,並且邊緣已經它alpha屬性設置爲東西少然後1.

enter image description here

enter image description here

而這裏的結果......

enter image description here

+0

感謝您的快速答覆。我曾嘗試過這樣的事情。我做了另外一個320像素的320像素的VC,在這之後,我做了這樣的事情:YourController yourController = new YourController(); yourController.ModalPresentationStyle = UIModalPresentationStyle.FormSheet; this.PresentViewController(yourController,true,null);並沒有運氣。它被延伸到完全屏幕。 關於您的「演示文稿屬性」,嗯..沒有聽到這個,但似乎https://youtu.be/CXvOS6hYADc?t=379這個功能也不支持XS。 – XTL

+0

視圖控制器上的演示文稿屬性確實出現在XS中,segue上的演示屬性不會出現在XS中,但如果使用xcode(您可以右鍵單擊故事板並選擇用xcode打開)設置,似乎可以工作。 – Jack

+0

至於大小,我會把它設置爲* freeform *,然後將根視圖的背景顏色設置爲* clear color *(透明),然後有一個子視圖,它是您想要的所有內容的容器在彈出窗口中顯示(你可以將該子視圖限制在控制器的中心) – Jack