给每个阅读它的人。我想制作像Viber,WhatsApp等聊天应用程序。对我来说主要的问题是动态设计。如果用户界面坚持,我知道如何使用约束,但如果它正在改变,我不知道。 请看Viber的动画: 在输入和接收或发送消息时,一切都在变化。如何使用Autoalyout进行操作?特别是我很有兴趣如何使用UITextView。在键入时扩展它,更重要的是,如何在其上方移动表视图。也许,更改保存文本视图的父视图的大小。我认为所有这些东西都可以称为动态自动布局。 我将不胜感激任何帮助或建议! 我使用的是Swift和Xcode 7,所有最新版本。
答案 0 :(得分: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)
}