您的viewStreet
将是一个加载GMSPanoramaView
,因为它没有坐标。所以你不能让一个装载GMSPanoramaView
等于你的panoView
(viewStreet = panoView
不会工作)。
取而代之,您可以将viewStreet
的类型更改为UIView
,现在它将像您的panoView
的容器视图一样行为。然后,您可以执行viewStreet.addSubview(panoView)
将您的panoView
添加到容器。
示例代码:
@IBOutlet weak var viewStreet: UIView!
@IBOutlet weak var sampleImageView: UIImageView!
var panoView: GMSPanoramaView!
override func viewDidLoad() {
super.viewDidLoad()
let panoramaNear = CLLocationCoordinate2DMake(30.274262, -97.752371)
panoView = GMSPanoramaView.panoramaWithFrame(CGRectZero,
nearCoordinate:panoramaNear)
viewStreet.addSubview(panoView)
viewStreet.sendSubviewToBack(panoView)
let equalWidth = NSLayoutConstraint(item: panoView, attribute: .Width, relatedBy: .Equal, toItem: viewStreet, attribute: .Width, multiplier: 1.0, constant: 0)
let equalHeight = NSLayoutConstraint(item: panoView, attribute: .Height, relatedBy: .Equal, toItem: viewStreet, attribute: .Height, multiplier: 1.0, constant: 0)
let top = NSLayoutConstraint(item: panoView, attribute: .Top, relatedBy: .Equal, toItem: viewStreet, attribute: .Top, multiplier: 1.0, constant: 0)
let left = NSLayoutConstraint(item: panoView, attribute: .Left, relatedBy: .Equal, toItem: viewStreet, attribute: .Left, multiplier: 1.0, constant: 0)
panoView.setTranslatesAutoresizingMaskIntoConstraints(false)
NSLayoutConstraint.activateConstraints([equalWidth, equalHeight, top, left])
}
如果你在你的应用程序中使用自动版式,你应该增加宽度,高度,顶部和左侧约束你panoView
。
您可以在this GitHub page查看示例应用程序。
在下面的模拟器屏幕截图中,我只需在panoView
之上添加标记图像即可。