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 设置为。然后添加mapViewtopViewBar 作为UIView 的子视图。

【讨论】:

嘿短跑。我尝试这样做,但它无法完全呈现地图。我将地图添加到根视图,因为这是它允许我从 viewDidLoad 初始化地图的唯一方法。你知道为什么会这样吗? Soory,它添加了地图。但未能放置标记。这就是我选择根视图的原因。无论如何,我确信有一种方法可以在其上添加视图......我认为?

以上是关于viewDidLoad() 中的 addSubView() 和 bringSubViewToFront() 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

viewDidLoad 中的动画

viewDidLoad 中的代码每次调用时都会运行

如何修复 viewDIdLoad 中的 indexPath 错误?

viewDidLoad 和 viewWillAppear 中的不同子视图布局 [重复]

在 viewDidLoad 中获取 IB 中的视图框架?

viewDidLoad 中的边界和帧大小