2015-07-20 64 views
2

App Store screenshot 在App Store中,多個應用程序圖標顯示在此屏幕截圖中。如何實現此segue/view外觀?

App Store screenshot with app icon tapped 輕敲的應用程序圖標之一,我們得到了一個觀點,我們展示了應用程序的細節,而調光視圖的其餘部分。在視圖外的任何地方點擊,將其解散。

我該如何達到這個效果?

從我所瞭解的情況來看,它不是一個帶有模式或彈出式擴展的視圖控制器。它也不是一個Show或Show Detail segue。


我的猜測是,它們是由

  1. 創建
  2. 覆蓋在屏幕1黑色全屏視圖,用50%的不透明度
  3. 設置someView.hidden = false和定位它上面的半透明做圖層
  4. 添加一個水龍頭手勢識別器'dismissSomeView',它將再次隱藏視圖並移除半透明圖層作爲w ell

如果我錯了,並且如果有更好的/蘋果認可的方法來實現它,請糾正我。


我想實現在iPhone這樣的效果,與支持的iOS 8和9

+0

是什麼讓你覺得它不是一個自定義的模態視圖控制器演示文稿? –

+0

謝謝@MikePollard。你的建議讓我回到了我發佈給其他人遵循的答案。 – Roboris

回答

2

當我發佈這個問題後,我很快就找到了最好的答案。

上述效果通過以下方式來實現的:

  1. 應用程序商店主視圖被認爲是呈現視圖控制器

  2. 單個應用程序的詳細信息以其視圖控制器顯示在視圖中。這是呈現的視圖控制器。賽格選擇爲Present Modally。在其自己的prepareForSegue:方法中,呈現視圖控制器設置該視圖控制器的轉換委託(下面解釋),並將modalPresentationStyle設置爲.Custom

  3. 提出的視圖控制器有一個轉換委託對象,它符合UIViewControllerTransitioningDelegate協議。

  4. 該代表具有指向表示控制器和動畫器對象的方法。 (這一步的細節可以在下面找到)。

  5. 定製動畫師對象是一個符合UIViewControllerAnimatedTransitioning協議的類。它決定了所呈現的視圖控制器在進出視圖中的動畫效果。

  6. 定製顯示控制器(的UIPresentationController類)是確定所呈現的視圖控制器的大小和位置的類。它也負責呈現調光鉻/視圖。可以選擇使調光視圖與所呈現的視圖控制器的過渡動畫一起動畫。


步驟4的詳細信息: 的而羅嗦方法名稱分別presentationControllerForPresentedViewController(_ presented: UIViewController, presentingViewController presenting: UIViewController!, sourceViewController source: UIViewController) -> UIPresentationController?animationControllerForPresentedController(_ presented: UIViewController, presentingController presenting: UIViewController, sourceController source: UIViewController) -> UIViewControllerAnimatedTransitioning?


此鏈接解釋它比我可能做到這一點: https://www.shinobicontrols.com/blog/ios8-day-by-day-day-24-presentation-controllers


而對於使用演示控制器實現類似的效果的視頻教程,請觀看視頻的後半部分「從去年的WWDC看看Inside Presentation Controllers':https://developer.apple.com/videos/wwdc/2014/

1

建立一個白色CustomedView在中央白色的背景色。

建立一個UIView黑色背景,約透明70%。

將customedView添加到maskView,將maskView添加到self.view。

MyCustomedView *topView = [[MyCustomedView alloc] initWithFrame:CGRectMake(50, 150, self.view.frame.size.width - 100, self.view.frame.size.height - 300)]; 
[maskView addSubview:topView]; 

UIView *maskView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 
maskView.backgroundColor = [UIColor blackColor]; 
maskView.alpha = 0.75; 
[self.view addSubview:maskView]; 

當你點擊UICollectionViewController中的一個圖標時,它會像這樣做。並傳遞一些參數,如名稱,說明。

這只是我的想法,你可以用你的想法做。希望這可以幫到你。

1

創建故事板與下面的參數賽格瑞:

SEGUE:當前模態

介紹:板材進行

轉折:默認

動畫檢查

注意:這種效果在Ipad中是可以實現的。要在iPhone中有類似的效果,你需要重寫特徵集合。