【问题标题】:Dynamic Auto Layout动态自动布局
【发布时间】:2016-06-17 08:01:05
【问题描述】:

致所有阅读它的人。我想制作 Viber、WhatsApp 等聊天应用程序。对我来说,主要问题是动态设计。如果用户界面是固定的,我知道如何处理约束,但如果它正在改变,我不知道。 请看 Viber 的动画: 输入和接收或发送消息时,一切都在移动和变化。如何使用 Autoalyout 做到这一点?特别是我很有趣如何使用 UITextView 来做到这一点。键入时扩展它,更重要的是,如何将表格视图移动到其上方。也许,更改包含文本视图的父视图的大小。我认为所有这些东西都可以称为动态自动布局。 我将不胜感激任何帮助或建议! 我使用的是 Swift 和 Xcode 7,都是最新版本。

【问题讨论】:

  • UIStackView 就是答案。

标签: ios xcode swift autolayout constraints


【解决方案1】:

这是一段使用 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)
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-08-30
    • 1970-01-01
    • 2014-01-03
    • 2016-04-07
    • 1970-01-01
    • 1970-01-01
    • 2015-07-07
    相关资源
    最近更新 更多