viewDidLoad() 中的 addSubView() 和 bringSubViewToFront() 不起作用
Posted
技术标签:
【中文标题】viewDidLoad() 中的 addSubView() 和 bringSubViewToFront() 不起作用【英文标题】:addSubView() and bringSubViewToFront() in viewDidLoad() not working 【发布时间】:2016-04-14 03:06:16 【问题描述】:我正在构建一个使用 Google Maps SDK 的应用程序。为此,我将视图(根视图)定义为 mapView。现在我要添加另一个视图,我希望它位于 mapView 之上,但是当我在 viewDidLoad() 中这样做时,它就没有发生。我非常感谢您的帮助,甚至解释为什么会发生这种情况...topViewBar 只是我在 Storyboard 中添加的 UIView。
class MapViewController: UIViewController
@IBOutlet weak var topViewBar: UIView!
override func viewDidLoad()
super.viewDidLoad()
//MARK: - put event on map function
func putEventOnMAp(latitude: CLLocationDegrees, longitude: CLLocationDegrees, eventInfo: String, map: GMSMapView)
let marker = GMSMarker()
marker.position = CLLocationCoordinate2DMake(latitude, longitude)
marker.title = eventInfo
marker.map = map
//MARK: - Initialize map view
let camera = GMSCameraPosition.cameraWithLatitude(-33.86,
longitude: 151.20, zoom: 6)
let mapView = GMSMapView.mapWithFrame(CGRectZero, camera: camera)
mapView.myLocationEnabled = true
self.view = mapView
self.view.addSubview(topViewBar) // these two lines is where I try to add the additional view
self.view.bringSubviewToFront(topViewBar)
let marker = GMSMarker()
marker.position = CLLocationCoordinate2DMake(-33.86, 151.20)
marker.title = "Sydney"
marker.snippet = "Australia"
marker.map = mapView
【问题讨论】:
【参考方案1】:您正在添加topViewBar
作为mapView
的子视图。我认为您要做的是初始化一个简单的容器UIView
以将self.view
设置为。然后添加mapView
和topViewBar
作为UIView
的子视图。
【讨论】:
嘿短跑。我尝试这样做,但它无法完全呈现地图。我将地图添加到根视图,因为这是它允许我从 viewDidLoad 初始化地图的唯一方法。你知道为什么会这样吗? Soory,它添加了地图。但未能放置标记。这就是我选择根视图的原因。无论如何,我确信有一种方法可以在其上添加视图......我认为?以上是关于viewDidLoad() 中的 addSubView() 和 bringSubViewToFront() 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
如何修复 viewDIdLoad 中的 indexPath 错误?