2014-09-26 2 views
0

я создаю и толкающий контроллер вида на кнопку прикосновении, используя приведенную ниже код в качестве метода полезности прикрепленного к кнопкеПрограммного Создание и Нажмите View Controller

func createSmartController() -> UIViewController{ 

    //Create controller and get view 
       var controller = UIViewController() 
       var view = controller.view 
       var tag:String 
       var count = 0 

       //Create and layout scroll view 
       var scrollView = UIScrollView() 
       scrollView.setTranslatesAutoresizingMaskIntoConstraints(false) 
       view.addSubview(scrollView) 
       view.addConstraint(NSLayoutConstraint(item: scrollView, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.Top, multiplier: 1.0, constant: 0.0)) 
       view.addConstraint(NSLayoutConstraint(item: scrollView, attribute: NSLayoutAttribute.Bottom, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.Bottom, multiplier: 1.0, constant: 0.0)) 
       view.addConstraint(NSLayoutConstraint(item: scrollView, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.Leading, multiplier: 1.0, constant: 0.0)) 
       view.addConstraint(NSLayoutConstraint(item: scrollView, attribute: NSLayoutAttribute.Trailing, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.Trailing, multiplier: 1.0, constant: 0.0)) 

       //Create and add content view 
       var scrollContent = UIView() 
       scrollContent.setTranslatesAutoresizingMaskIntoConstraints(false) 
       scrollView.addSubview(scrollContent) 
       scrollView.addConstraint(NSLayoutConstraint(item: scrollContent, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: scrollView, attribute: NSLayoutAttribute.Top, multiplier: 1.0, constant: 0.0)) 
       scrollView.addConstraint(NSLayoutConstraint(item: scrollContent, attribute: NSLayoutAttribute.Bottom, relatedBy: NSLayoutRelation.Equal, toItem: scrollView, attribute: NSLayoutAttribute.Bottom, multiplier: 1.0, constant: 0.0)) 
       scrollView.addConstraint(NSLayoutConstraint(item: scrollContent, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: scrollView, attribute: NSLayoutAttribute.Leading, multiplier: 1.0, constant: 0.0)) 
       scrollView.addConstraint(NSLayoutConstraint(item: scrollContent, attribute: NSLayoutAttribute.Trailing, relatedBy: NSLayoutRelation.Equal, toItem: scrollView, attribute: NSLayoutAttribute.Trailing, multiplier: 1.0, constant: 0.0)) 
       view.addConstraint(NSLayoutConstraint(item: scrollContent, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.Leading, multiplier: 1.0, constant: 0.0)) 
       view.addConstraint(NSLayoutConstraint(item: scrollContent, attribute: NSLayoutAttribute.Trailing, relatedBy: NSLayoutRelation.Equal, toItem: view, attribute: NSLayoutAttribute.Trailing, multiplier: 1.0, constant: 0.0)) 

       //Create all buttons 
       var buttons = self.GetMyButtons() //Just returns and array of UIButtons 

       //Add buttons to view with constraints 
       var prevButton:String 
       var constH:NSArray 
       var constV:NSArray 
       var hString:String 
       var vString:String 
       var index = 0 
       for button in buttons{ 
        button.setTranslatesAutoresizingMaskIntoConstraints(false) 
        scrollContent.addSubview(button) 
        button.bounds.size.height = 90 
        scrollContent.addConstraint(NSLayoutConstraint(item: button, attribute: NSLayoutAttribute.Leading, relatedBy: NSLayoutRelation.Equal, toItem: scrollContent, attribute: NSLayoutAttribute.Leading, multiplier: 1.0, constant: 0.0)) 
        scrollContent.addConstraint(NSLayoutConstraint(item: button, attribute: NSLayoutAttribute.Trailing, relatedBy: NSLayoutRelation.Equal, toItem: scrollContent, attribute: NSLayoutAttribute.Trailing, multiplier: 1.0, constant: 0.0)) 
        if(index == 0){ 
         scrollContent.addConstraint(NSLayoutConstraint(item: button, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: scrollContent, attribute: NSLayoutAttribute.Top, multiplier: 1.0, constant: 8.0)) 
        } 
        else{ 
         scrollContent.addConstraint(NSLayoutConstraint(item: button, attribute: NSLayoutAttribute.Top, relatedBy: NSLayoutRelation.Equal, toItem: buttons[index-1], attribute: NSLayoutAttribute.Bottom, multiplier: 1.0, constant: 8.0)) 
        } 
        if(index == buttons.count-1){ 
         scrollContent.addConstraint(NSLayoutConstraint(item: button, attribute: NSLayoutAttribute.Bottom, relatedBy: NSLayoutRelation.Equal, toItem: scrollContent, attribute: NSLayoutAttribute.Bottom, multiplier: 1.0, constant: -8.0)) 
        } 
        index++ 
       } 
return controller 
    } 

Этот метод используется в следующем вызове для генерации и нажмите на контроллер представления на кнопку touchupinside

var controller = button.getSmartController() 
      self.navigationController?.pushViewController(controller, animated: true) 

Однако, на мой взгляд контроллер, который выталкивается кажется, не имеют вид на все. Он черный/пустой. У анимации push также есть небольшая заминка.

+0

Я не вижу объектива-c здесь. Неверный тег? – CrimsonChris

+0

@CrimsonChris Я принимаю быстрые и объективные-с для большинства моих вещей ios, так как перевод прост. – steventnorris

+0

Вы запрашиваете помощь для отладки кода Swift. Не используйте для этого тег object-c. – CrimsonChris

ответ

0

Все цвета фона были несуществующими и показаны как черные. При программном создании элементов необходимо добавить стиль, или все значения по умолчанию возвращаются как null/black.

+0

Вы выяснили причину небольшой заминки? У меня тоже есть. – Rishab

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