【发布时间】:2017-05-19 21:56:17
【问题描述】:
我是 swift 新手。我使用addArrangedSubview() 将视图添加到stackview。但我无法使用removeArrangedSubview() 删除此视图。
即使删除了排列好的子视图,视图仍然存在
import Foundation
import UIKit
class render: UIViewController {
let subview = UIStackView()
let mainview = UIStackView()
override func viewDidLoad() {
super.viewDidLoad()
self.mainviewlet()
self.login()
}
func login() {
let username = UITextField()
// text field
let button = UIButton(frame: CGRect(x: 100, y: 100, width: 100, height: 40))
//button
// Adding to subview
subview.axis = UILayoutConstraintAxis.vertical
subview.distribution = UIStackViewDistribution.equalSpacing
subview.alignment = UIStackViewAlignment.center
subview.spacing = 16.0
subview.addArrangedSubview(username)
subview.addArrangedSubview(button)
subview.translatesAutoresizingMaskIntoConstraints = false;
// Adding subview to another stackview
mainview.addArrangedSubview(subview)
self.view.addSubview(mainview)
}
在另一个函数中,我正在删除排列的子视图
func signup(sender: UIButton!) {
// Remove subview
mainview.removeArrangedSubview(subview)
subview.removeFromSuperview()
let firstname = UITextField()
firstname.textAlignment = NSTextAlignment.center
firstname.textColor = UIColor.black
firstname.frame = CGRect()
firstname.frame.size.height = 30;
firstname.text = "firstname"
subview.addArrangedSubview(firstname)
mainview.addArrangedSubview(subview)
self.view.addSubview(mainview)
}
我的主视图被创建为:
func mainviewlet {
mainview.axis = UILayoutConstraintAxis.vertical
mainview.distribution = UIStackViewDistribution.equalSpacing
mainview.alignment = UIStackViewAlignment.center
mainview.spacing = 16.0
mainview.translatesAutoresizingMaskIntoConstraints = false;
self.view.addSubview(mainview)
}
我希望删除 username 和 button 并将新字段 firstname 添加到子视图中。
我做对了吗?如何删除子视图?感谢您的帮助
【问题讨论】:
-
有什么问题?
-
@shallowThought ,即使我删除了子视图,按钮和文本框仍然存在
-
您没有删除它们。缺少像
subview.removeArrangedSubview(username)这样的东西。 -
@shallowThought,你的意思是我需要一个一个删除它们?如果有更多这样的控件呢?
标签: ios user-interface uistackview