2014-12-03 2 views
0

현재 Swift에서 동적으로 생성 된 레이블, UITextFields 및 UISteppers를 사용하여 3 페이지 폼을 설정하고 있습니다. 그러나 모든 예제에서는 스토리 보드를 사용하기 때문에 UITextField를 동적으로 증가시키는 방법에 대해 궁금합니다. 프로그래밍 방식으로 작업하고 있습니다. 도와 주셔서 미리 감사드립니다.UIStepper increment 동적 텍스트 상자

  // read triggers configs 
     let triggers = dict["Triggers"] as Array<String> 

     //add list of triggers to view 
     var triggersView = UIView(frame: frame) 
     var prevInput = 150; 
     for index in 0..<triggers.count{ 
      //title for triggers page 
      var title = UILabel(frame: CGRectMake(0, 0, 300, 50)) 
      title.center = CGPointMake(200, 60) 
      title.font = UIFont(name: title.font.fontName, size: 28) 
      title.text = "Triggers" 
      triggersView.addSubview(title) 

      //label for trigger 
      var label = UILabel(frame: CGRectMake(0, 0, 200, 21)) 
      label.center = CGPointMake(160, CGFloat(prevInput)) 

      label.textAlignment = NSTextAlignment.Left 
      label.text = triggers[index] 
      triggersView.addSubview(label) 

      //input box for trigger 
      var input = UITextField(frame: CGRectMake(0, 0, 50, 21)) 
      input.center = CGPointMake(300, CGFloat(prevInput)) 
      input.text = "0"; 
      triggersView.addSubview(input); 

      //UIStepper 
      var stepper = UIStepper(frame: CGRectMake(0, 0, 50, 21)) 
      stepper.center = CGPointMake(350, CGFloat(prevInput)) 
      stepper. 
      triggersView.addSubview(stepper); 

      prevInput += 75 //increment for height 

     } 
     self.scrollView.addSubview(triggersView) 

수정 : 버튼에 작업을 추가하는 것과 비슷합니까? How to create a button programmatically?

답변

1

UIStepper는 UIControl의 하위 클래스이므로 addTarget(_:action:forControlEvents:)을 사용하여 수행 할 작업을 설정할 수 있습니다. 작업을 올바르게 시작하려면 제어 이벤트가 UIControlEvents.ValueChanged이어야합니다.

https://developer.apple.com/LIBRARY/IOS/documentation/UIKit/Reference/UIControl_Class/index.html#//apple_ref/occ/instm/UIControl/addTarget:action:forControlEvents

:

저쪽에 당신이 그것으로 연결된 관련의 UITextField에 UIStepper 연관 할 수있는 방법이 필요합니다. 따라서 UITextField 및 UISteppers를 튜플로 배열에 저장하거나 UIStepper을 하위 클래스로 만들고 해당 스테퍼와 연결된 UITextField에 속성을 추가 할 수 있습니다.

+0

또는 UIView의 하위 클래스를 만들고 속성 및 하위 뷰로 스테퍼와 텍스트 필드를 저장할 수 있습니다. – shim