2016-06-17 2 views
0

누구나 읽을 수 있습니다. Viber, WhatsApp 등의 채팅 응용 프로그램을 만들고 싶습니다. 그리고 저에게 가장 큰 문제는 동적 설계입니다. 나는 사용자 인터페이스가 스틱 인 경우 제약 조건을 처리하는 방법을 알고 있지만, 변경 중이라면 그렇지 않습니다. Viber의 애니메이션을 확인하십시오. Viber chat screen 메시지를 입력하고 수신하거나 보낼 때 모든 것이 이동하고 변경됩니다. Autoalyout을 사용하여 어떻게합니까? 특히 UITextView로하는 방법이 흥미 롭습니다. 타이핑 할 때 확장하려면 무엇보다 테이블 뷰를 이동하는 것이 중요합니다. 어쩌면 텍스트보기를 보유하고있는 부모보기의 크기를 변경할 수 있습니다. 나는이 모든 것들이 Dynamic Auto Layout이라고 부를 수 있다고 생각한다. 도움이나 조언을 부탁드립니다. 모든 최신 버전의 Swift 및 Xcode 7을 사용하고 있습니다.동적 자동 레이아웃

+1

UIStackView가 답입니다. – user3069232

+0

무엇을 의미합니까? – Alex

답변

0

다음은 UIStackViews를 사용하여 키패드를 작성하는 코드입니다. 레이아웃은 UIStackView에 의해 관리됩니다.

func newPad(runModeVariable:Int) { 


    var xPos:CGFloat = 0 
    var yPos:CGFloat = 0 

    keyPadWindow = UIView(frame: CGRect(x: xPos, y: yPos, width: 320, height: 356)) 

    var keyCount = 0 
    keyPadSV = UIStackView(frame: CGRect(x: 0, y: 0, width: 320, height: 356)) 
    keyPadSV!.axis = .Vertical 
    keyPadSV!.spacing = 0.0 
    keyPadSV!.alignment = .Center 
    keyPadSV!.distribution = .EqualSpacing 
    for _ in 0 ..< 5 { 
     let keyPadSVB = UIStackView(frame:CGRect(x: 0, y: 0, width: 0, height: 0)) 
     keyPadSVB.axis = .Horizontal 
     keyPadSVB.spacing = 0.0 
     keyPadSVB.alignment = .Center 
     keyPadSVB.distribution = .EqualSpacing 
     for _ in 0 ..< 4 { 
      let button = UIButton(type: UIButtonType.Custom) as UIButton 
      button.frame = CGRectMake(0, 0, 0, 0) 
      button.tag = keyCount 
      let blah = "x" + String(keyCount) 
      let blahIMAGE = UIImage(named: blah) 
      button.setImage(blahIMAGE, forState: UIControlState.Normal) 

      button.addTarget(self, action: #selector(ViewController.keyPadPress(_:)), forControlEvents: UIControlEvents.TouchUpInside) 
      keyPadSVB.addArrangedSubview(button) 
      keyCount += 1 
     } 
     keyPadSV.addArrangedSubview(keyPadSVB) 
    } 
    keyPadWindow.addSubview(keyPadSV) 
    self.view.addSubview(keyPadWindow) 
}