2015-03-26 3 views
0

Когда я использую элемент раскадровки (текстовое представление, метку), все работает, и у меня есть текстовое поле в середине контроллера предупреждений. Но когда я хочу сделать это по коду (текстовое поле, кроме раскадровки), оно не работает. Вот код.Центр UITextField в UIAlertController

func addAlert(){ 
     // create the alert 
     let title = "This is the title" 
     let message = "This is the message" 
     var alert = UIAlertController(title: title, message: message, preferredStyle: UIAlertControllerStyle.Alert); 
     alert.modalInPopover = true; 

     // add an action button 
     let nextAction: UIAlertAction = UIAlertAction(title: "Action", style: .Default){action->Void in 
      // do something 
     } 
     alert.addAction(nextAction) 

     // now create our custom view - we are using a container view which can contain other views 
     let containerViewWidth = 250 
     let containerViewHeight = 120 
     var containerFrame = CGRectMake(10, 70, CGFloat(containerViewWidth), CGFloat(containerViewHeight)); 
     var containerView: UIView = UIView(frame: containerFrame); 

     alert.view.addSubview(containerView) 

     var newProjectTextField = UITextField(frame: CGRectMake(0, 0, 200, 31)) 
     newProjectTextField.center = CGPointMake(160, 284) 
     newProjectTextField.textAlignment = NSTextAlignment.Center 
     newProjectTextField.placeholder = "New project's name" 

     alert.view.addSubview(newProjectTextField) 

     // now add some constraints to make sure that the alert resizes itself 
     var cons:NSLayoutConstraint = NSLayoutConstraint(item: alert.view, attribute: NSLayoutAttribute.Height, relatedBy: NSLayoutRelation.GreaterThanOrEqual, toItem: containerView, attribute: NSLayoutAttribute.Height, multiplier: 1.00, constant: 130) 
     alert.view.addConstraint(cons) 

     var cons2:NSLayoutConstraint = NSLayoutConstraint(item: alert.view, attribute: NSLayoutAttribute.Width, relatedBy: NSLayoutRelation.GreaterThanOrEqual, toItem: containerView, attribute: NSLayoutAttribute.Width, multiplier: 1.00, constant: 20) 
     alert.view.addConstraint(cons2) 

     var centerXConstraint:NSLayoutConstraint = NSLayoutConstraint(item: newProjectTextField, attribute: NSLayoutAttribute.CenterX, relatedBy: NSLayoutRelation.Equal, toItem: alert.view, attribute: NSLayoutAttribute.CenterX, multiplier: 1.00, constant: 0.0) 
     alert.view.addConstraint(centerXConstraint) 

     var centerYConstraint:NSLayoutConstraint = NSLayoutConstraint(item: newProjectTextField, attribute: NSLayoutAttribute.CenterY, relatedBy: NSLayoutRelation.Equal, toItem: alert.view, attribute: NSLayoutAttribute.CenterY, multiplier: 1.00, constant: 0.0) 
     alert.view.addConstraint(centerYConstraint) 

     // present with our view controller 
     presentViewController(alert, animated: true, completion: nil) 
    } 

uitextfield

+0

Получаете ли вы предупреждения или ошибки ограничения в журнале? И каков текущий результат (что вы неудовлетворены)? – Firo

+0

Каков результат кода? Что вы видите на экране. Существуют ли какие-либо предупреждения или ошибки ограничения? – Abdullah

+0

@Firo У меня так много предупреждений о ограничениях, что я даже не могу сосчитать: -D Но не об этой проблеме. Я добавил скриншот о том, как он выглядит сейчас. Текстовое поле центрировано, но оно расширяет координаты Y сигналов. – Kotora

ответ

1
newProjectTextField.center = CGPointMake(250,120) 

Это будет центр без расширения оси у. Не уверен, что это именно то, что вы ищете.

+0

Да, я просто иди .. Это было так просто. Спасибо ;) – Kotora