好吧,我在Swift 3
中遇到了一些问题,同时拼命地向MSStickerBrowserView
添加UIScrollview
。
我正在使用邮件扩展应用,并通过故事板添加了我的scrollview
(我通常以编程方式制作它们,但我认为通过约束更容易)。我已将scrollview
作为我的MessagesViewController
脚本中的插座连接起来。
我需要添加MSStickerBrowser
我已创建为此subview
的{{1}},这意味着用户可以滚动到浏览器视图,然后滚动浏览实际的浏览器。
这就是我正常创建浏览器视图并将其添加到视图的方式 - 当添加到视图中时,它全部按预期工作:
scrollview
我对MSStickerBrowsers了解不多,因为教程有限,但我知道这会将浏览器的大小与更改的Message VC的大小联系起来,并将其添加为普通的子视图。
然后我在逻辑上尝试将其添加为scrollview的子视图:
func createStickerBrowser() {
let controller = MSStickerBrowserViewController(stickerSize: .large)
addChildViewController(controller)
view.addSubview(controller.view)
controller.stickerBrowserView.backgroundColor = UIColor.gray
controller.stickerBrowserView.dataSource = self
//resize this programmatically later
view.topAnchor.constraint(equalTo: controller.view.topAnchor).isActive = true
view.bottomAnchor.constraint(equalTo: controller.view.bottomAnchor).isActive = true
view.leftAnchor.constraint(equalTo: controller.view.leftAnchor).isActive = true
view.rightAnchor.constraint(equalTo: controller.view.rightAnchor).isActive = true
}
我已经尝试了多种变体,但无论贴纸浏览器视图是什么都无处可去。 let controller = MSStickerBrowserViewController(stickerSize: .large)
//controller.view.frame = CGRect(x: 0, y: 0, width: view.bounds.width, height: view.bounds.height * 0.5)
addChildViewController(controller)
scrollView.addSubview(controller.view)
controller.stickerBrowserView.backgroundColor = UIColor.gray
controller.stickerBrowserView.dataSource = self
//resize this programmatically later
scrollView.topAnchor.constraint(equalTo: controller.view.topAnchor).isActive = true
scrollView.bottomAnchor.constraint(equalTo: controller.view.bottomAnchor).isActive = true
scrollView.leftAnchor.constraint(equalTo: controller.view.leftAnchor).isActive = true
scrollView.rightAnchor.constraint(equalTo: controller.view.rightAnchor).isActive = true
在那里,而不是浏览器,并且没有错误打印到控制台。
这似乎应该很简单 - 我做错了什么?