2015-07-29 2 views
0

Я должен реализовать левое скользящее меню, например UBER или Gmail.custom segue для реализации меню левой панели

создать пользовательский SEGUE для подключения кнопки к UITableViewController (меню), работает правильно, но у меня есть две проблемы:

1.- Когда сенсорный пользователь в любом месте на столе содержимое таблицы исчезает

2.- Я не знаю, как реализовать «разматывать», когда пользователь прикасается за пределы таблицы, идея заключается в том, что этот код записывается один раз, а не на каждый контроллер вида.

Мои StoryBorad выглядит следующим образом (Очень раннее развитие):

enter image description here

и это мой код Segue:

import UIKit 

class LeftMenuSegue: UIStoryboardSegue { 

    override func perform() { 
     var content = self.sourceViewController as! UIViewController 
     var menu = self.destinationViewController as! UIViewController 
     var contentFrame: CGRect = content.view.frame 
     menu.view.frame = CGRectMake(-(contentFrame.size.width), 0, contentFrame.size.width/2, contentFrame.size.height) 
     var sideFrame: CGRect = menu.view.frame 
     var animationFrame = contentFrame 
     animationFrame.size.width = contentFrame.size.width/2 
     var blackview = UIView(frame: contentFrame) 
     blackview.backgroundColor = UIColor.blackColor().colorWithAlphaComponent(0.5) 
     menu.view.alpha = 0 
     blackview.alpha = 0 
     content.view.superview?.window?.addSubview(blackview) 
     content.view.superview?.window?.addSubview(menu.view) 
     UIView.animateWithDuration(0.5, delay: 0, options: UIViewAnimationOptions.CurveEaseOut, 
      animations: {() -> Void in 
       blackview.alpha = 0.5 
       menu.view.frame = animationFrame 
       menu.view.alpha = 1 
      }) { (finished) -> Void in 
       menu.didMoveToParentViewController(content) 
     } 
    } 
} 

при работе на моем iPhone 6 выглядит следующим образом:

enter image description here

+0

Вы не можете использовать разматывание, потому что вы не делали подарок, а добавляли только контроллер меню над другим контроллером, вы также пропустили addChi ldViewController –

ответ

0

Для размотки segue вам нужно будет создать подкласс класса UIStoryboardSegue.

Вы можете создать tapGesture уволить меню и вам нужно будет определить этот метод на вашем ViewController

override func segueForUnwindingToViewController(toViewController: UIViewController, fromViewController: UIViewController, identifier: String?) -> UIStoryboardSegue { 

} 

Вы можете использовать этот CustomSegue руководство: http://www.appcoda.com/custom-segue-animations/

Вместо создания левого скользящее меню , может быть, вы могли бы использовать стручок, например: https://github.com/John-Lluch/SWRevealViewController

Смежные вопросы