给每一个读过它的人。我想使聊天应用程序,如Viber,WhatsApp等,对我来说,主要的问题是动态设计。我知道如果用户界面是粘滞的,如何处理约束,但是,如果它是变化的,我不知道。请看Viber的动画:

在输入和接收或发送消息时,一切都在移动和变化。如何使用Autoalyout来实现?尤其是我对如何使用UITextView做这件事很感兴趣。在键入时将其展开,以及更重要的是,如何将表视图移到其上方。也许,改变包含文本视图的父视图的大小。我认为所有这些东西都可以被称为动态自动布局。我将感谢任何帮助或建议!我使用的是Swift和Xcode7,都是最新版本。
发布于 2016-06-19 15:01:13
这是一段使用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)
}https://stackoverflow.com/questions/37876198
复制相似问题