2015-03-23 1 views
1

Я пытаюсь создать пользовательский UIView и отображать его как всплывающее окно в моем основном представлении с помощью Swift.Создайте PopUp в Swift с помощью пользовательского UIView

Мой заказ UIView код

class DatePopUpView: UIView { 
var uiView:UIView? 

override init() { 
    super.init() 
    self.uiView = NSBundle.mainBundle().loadNibNamed("DatePopUpView", owner: self, options: nil)[0] as? UIView 

} 

required init(coder aDecoder: NSCoder) { 
    super.init(coder: aDecoder) 
     } 

required override init(frame: CGRect) { 
      super.init(frame: frame) 

} 

} 

И я зову его в своем главном окне как:

@IBAction func date_button_pressed (sender : AnyObject?) { 
var popUpView = DatePopUpView() 
var centre : CGPoint = CGPoint(x: self.view.center.x, y: self.view.center.y) 

    popUpView.center = centre 
    popUpView.layer.cornerRadius = 10.0 
    let trans = CGAffineTransformScale(popUpView.transform, 0.01, 0.01) 
    popUpView.transform = trans 
    self.view .addSubview(popUpView) 
    UIView .animateWithDuration(0.5, delay: 0.0, options:  UIViewAnimationOptions.CurveEaseInOut, animations: { 

     popUpView.transform = CGAffineTransformScale(popUpView.transform, 100.0, 100.0) 

     }, completion: { 
      (value: Bool) in 

    }) 

} 

Но PopUp не Пришествия. Я использовал точку останова и заметил, что значение присваивается моему popUpView, но все же оно не отображается на моем основном представлении. Пожалуйста, помогите

Обратите внимание: я использую StoryBoard для моего основного вида и пользовательского вида, который я сделал с помощью xib.

+0

Я думаю, что вам нужно Более описание вашего вопроса –

ответ

0

Без дополнительного описания о том, что вы пытаетесь сделать, могу ли я предложить что-то вроде кода ниже? В принципе, вы можете использовать скрытую функцию представления (или любого другого элемента управления) для отображения/скрытия представления. Вы можете установить размер и положение представления, которое будет отображаться с помощью редактора макетов.

 import UIKit 

    class ViewController: UIViewController { 
     var popped = false 
     var popupBtnTitle = "Show Popup" 
     @IBAction func popupButton(sender: UIButton) { 
      popped = !popped 
      anotherView.hidden = !popped 
      popupBtnTitle = popped ? "Hide Popup" : "Show Popup" 
      popupButtonOutlet.setTitle(popupBtnTitle, forState: UIControlState.Normal) 
     } 
     @IBOutlet weak var popupButtonOutlet: UIButton! 
     @IBOutlet weak var anotherView: UIView! 
     override func viewDidLoad() { 
      super.viewDidLoad() 
      popped = false 
      anotherView.hidden = !popped 
      popupButtonOutlet.setTitle(popupBtnTitle, forState: UIControlState.Normal) 


      // Do any additional setup after loading the view. 
     } 

     override func didReceiveMemoryWarning() { 
      super.didReceiveMemoryWarning() 
      // Dispose of any resources that can be recreated. 
     } 

    } 
+0

Спасибо @syed за предложение, но я попытался перетащить 'UIView' в' Storybord', но не смог сделать это. поэтому я создал один xib и создал пользовательский вид. – Shruti

+1

Он отлично работает. Также как тест, создайте новый проект. Это создаст ViewController, в котором есть представление. Теперь перетащите снимок вниз и поместите его под главный вид. См. Https://www.dropbox.com/sh/l5h7kk5ntb04hsb/AABgp8c0D9THGUoxlNhrD-uRa?dl=0 –

+0

Он отлично работает. Также как тест, создайте новый проект. Это создаст ViewController, в котором есть представление. Теперь перетащите снимок вниз и поместите его под главный вид. Смотрите проект: https://www.dropbox.com/sh/l5h7kk5ntb04hsb/AABgp8c0D9THGUoxlNhrD-uRa?dl=0 –

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