Swift UIScrollView中的UIButton->;UIStackView->;UIView未单击
我很难弄清楚为什么UIButton不会点击。我有一个Swift UIScrollView中的UIButton->;UIStackView->;UIView未单击,swift,ios9,xcode7,Swift,Ios9,Xcode7,我很难弄清楚为什么UIButton不会点击。我有一个UIScrollView,其中包含一个UIStackView,我在其中以编程方式放置子视图。我正在创建子视图并将它们放置到堆栈视图中,如下所示: import UIKit class ViewController: UIViewController { @IBOutlet weak var scrollView: UIScrollView! @IBOutlet weak var stackView: UIStackView!
UIScrollView
,其中包含一个UIStackView
,我在其中以编程方式放置子视图。我正在创建子视图并将它们放置到堆栈视图中,如下所示:
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var scrollView: UIScrollView!
@IBOutlet weak var stackView: UIStackView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
let vc0 = self.storyboard?.instantiateViewControllerWithIdentifier("vc0") as UIViewController!
let vc1 = self.storyboard?.instantiateViewControllerWithIdentifier("vc1") as UIViewController!
self.stackView.addArrangedSubview(vc0.view)
self.stackView.addArrangedSubview(vc1.view)
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
// mulitply by two in order to scale it to the size of each `addArrangedSubview`, subtract the height of the embedded navbar
scrollView.contentSize = CGSize(width: stackView.frame.width * 2, height: stackView.frame.height - 64)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
我所做的其他更改仅限于约束:
我应该注意到
vc0
和vc1
是简单的UIView
s,其中ui按钮设置为show
另一个简单的UIView
。
任何帮助都将不胜感激
编辑:
我已经以编程方式向vc0添加了一个按钮,并且单击正在工作。为什么这个按钮有效,而故事板上的一个按钮无效
...
let vc0 = self.storyboard?.instantiateViewControllerWithIdentifier("vc0") as UIViewController!
...
let btn=UIButton(type: .System)
btn.frame = CGRectMake(100, 100, 32, 32)
btn.addTarget(self, action: "pressed", forControlEvents: .TouchUpInside)
btn.setTitle("Press Me", forState: .Normal)
vc0.view.addSubview(btw)
...
vc0
和vc1
在代码中显示为视图控制器,而不是UIView
s可能也有助于查看这些控制器的代码UIStackView
不能包含UIViewController
。此代码甚至可能无法编译,因为addArrangedSubview
需要UIView
@shim将它们添加到UIStackView
时,应该有.view
。您希望看到哪种代码?我在故事板上创建了它们,添加了一个按钮,并将ctrl
拖动到另一个视图,然后选择show
。控制器代码尚未修改。我目前正面临完全相同的问题。这个问题有什么新的解决方案吗?以编程方式(没有IB)创建StackView的视图目前不是我的选项。