为scrollview动态添加各种控件(iOS/Swift)
Dynamically add various controls to scrollview (iOS/Swift)
我正在开发一个 Web 应用程序,它允许用户自定义他们想要从用户那里检索的字段。例如,文本、数字、布尔值、弹出窗口。因为不知道我需要的控件数量,所以决定创建对滚动视图的引用。我尝试添加一个按钮作为测试,但我不知道如何让按钮显示出来?当我查看页面时,我只看到白色。
如何向滚动视图添加动态控件?
我尝试过的事情:
- 确保 AutoLayout 对于 scrollView 是正确的。
下面的addSubview代码。
import UIKit
class TaskDetailViewController: UIViewController {
@IBOutlet weak var theScrollView: UIScrollView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
//self.view.addSubview(UIButton)
let cellButton = UIButton(frame: CGRectMake(5, 5, 50, 30))
cellButton.setTitle("hello", forState: UIControlState.Normal)
theScrollView.addSubview(cellButton)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
/*
// MARK: - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
// Get the new view controller using segue.destinationViewController.
// Pass the selected object to the new view controller.
}
*/
}
看来这是正确的做法。显然文本默认是白色的,所以我看不到按钮。
添加这一行
button.backgroundColor = UIColor.blackColor()
使按钮可见。正如我的问题询问如何添加各种控件,这可以通过以编程方式使用约束来完成并且仍然遵循自动布局视图。这里有一个关于该主题的好视频 (https://www.youtube.com/watch?v=Bl_YZLKPg1c),请确保也观看第 1 部分。
在Scrollview下加一个ContainerView,把你所有的子view都放在ContainerView里面不是更好的做法吗?
我正在开发一个 Web 应用程序,它允许用户自定义他们想要从用户那里检索的字段。例如,文本、数字、布尔值、弹出窗口。因为不知道我需要的控件数量,所以决定创建对滚动视图的引用。我尝试添加一个按钮作为测试,但我不知道如何让按钮显示出来?当我查看页面时,我只看到白色。
如何向滚动视图添加动态控件?
我尝试过的事情:
- 确保 AutoLayout 对于 scrollView 是正确的。
下面的addSubview代码。
import UIKit class TaskDetailViewController: UIViewController { @IBOutlet weak var theScrollView: UIScrollView! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view. //self.view.addSubview(UIButton) let cellButton = UIButton(frame: CGRectMake(5, 5, 50, 30)) cellButton.setTitle("hello", forState: UIControlState.Normal) theScrollView.addSubview(cellButton) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } /* // MARK: - Navigation // In a storyboard-based application, you will often want to do a little preparation before navigation override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { // Get the new view controller using segue.destinationViewController. // Pass the selected object to the new view controller. } */ }
看来这是正确的做法。显然文本默认是白色的,所以我看不到按钮。
添加这一行
button.backgroundColor = UIColor.blackColor()
使按钮可见。正如我的问题询问如何添加各种控件,这可以通过以编程方式使用约束来完成并且仍然遵循自动布局视图。这里有一个关于该主题的好视频 (https://www.youtube.com/watch?v=Bl_YZLKPg1c),请确保也观看第 1 部分。
在Scrollview下加一个ContainerView,把你所有的子view都放在ContainerView里面不是更好的做法吗?