我正在尝试制作一个可重用的 PopUp View Controller ,由以下内容组成:
- 带有图像和标签的静态部分(顶部部分)
- 动态部分(下部),可以包含 1 个大按钮,或 2 个并排的较小按钮,或 2 个相互叠放的较小按钮。
它应该看起来像这样:
现在这是我所做的:
- 创建了一个 PopUpViewController 类
- 在 Storyboard中,添加了一个带有 PopUpViewController 类的 VC
- 添加静态部分的 socket
现在,我不知道如何继续。
根据弹出窗口的样式(1 或 2 个按钮等)显示/隐藏对象的想法对我来说似乎很可怕。
我认为我不能使用 xibs ?
我希望我可以使用 Storyboard,因为我无法通过代码进行自动布局。
代码仍然是可行的方法吗?
最佳答案
您可以在代码中创建 3 个按钮。使用 if 语句要么显示 2 个小按钮,要么显示大按钮。否则,我认为您可以在 Storyboard中添加 2 个“ View ”对象,并在一个中添加 2 个按钮,在另一个中添加 1 个按钮,然后使用 if 语句再次显示和隐藏您想要的“ View ”。
这是一个例子:
import UIKit
class ViewController: UIViewController {
var flag = false
var buttonSmallOne: UIButton!
var buttonSmallTwo: UIButton!
var buttonBigOne: UIButton!
override func viewDidLoad() {
super.viewDidLoad()
// Create the 3 buttons
buttonSmallOne = UIButton(frame: CGRect(x: self.view.bounds.width/2 - 50, y: self.view.bounds.height/2, width: 50, height: 50))
buttonSmallOne.backgroundColor = .green()
buttonSmallOne.addTarget(self, action: #selector(buttonAction), for: .touchUpInside)
buttonSmallTwo = UIButton(frame: CGRect(x: self.view.bounds.width/2 + 50, y: self.view.bounds.height/2, width: 50, height: 50))
buttonSmallTwo.backgroundColor = .green()
buttonSmallTwo.addTarget(self, action: #selector(buttonAction), for: .touchUpInside)
self.view.addSubview(buttonSmallOne)
self.view.addSubview(buttonSmallTwo)
buttonBigOne = UIButton(frame: CGRect(x: self.view.bounds.width/2-100, y: self.view.bounds.height/2, width: 100, height: 50))
buttonBigOne.backgroundColor = .red()
buttonBigOne.addTarget(self, action: #selector(buttonAction), for: .touchUpInside)
self.view.addSubview(buttonBigOne)
buttonBigOne.isHidden = true
buttonBigOne.isEnabled = false
}
func buttonAction(sender: UIButton!) {
if flag == false {
// Hide
buttonSmallOne.isHidden = true
buttonSmallOne.isEnabled = false
buttonSmallTwo.isHidden = true
buttonSmallTwo.isEnabled = false
// Show
buttonBigOne.isHidden = false
buttonBigOne.isEnabled = true
flag = true
}else{
// Show
buttonSmallOne.isHidden = false
buttonSmallOne.isEnabled = true
buttonSmallTwo.isHidden = false
buttonSmallTwo.isEnabled = true
// Hide
buttonBigOne.isHidden = true
buttonBigOne.isEnabled = false
flag = false
}
}
}
关于ios - 在 View Controller 中添加动态部分作为 subview ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38567181/