2017-05-09 23 views
1
不能點擊

您好我創造我的自定義marker.iconviewmarker.iconView?.addSubview(UIButton的)與Gmaps

marker.iconView = CustomMarkerView(frame: CGRect(x: 0, y: 0, width: 301, height: 36)) 

這裏是我的自定義標記視圖

import UIKit 

class CustomMarkerView: UIView { 

var logo = UIImage() 
var adress = UILabel() 
var price = UILabel() 
var icon_like = UIImage(named: "icon_like") 
var icon_direction = UIImage(named: "icon_direction") 

override init(frame: CGRect) { 
    super.init(frame: frame) 
    self.addCustomView() 
} 

init(frame: CGRect, adress: String, price: String, logo: String) { 
    super.init(frame: frame) 
    self.adress.text = adress 
    self.price.text = price 
    self.logo = UIImage(named: logo)! 
    self.addCustomView() 
} 

required init(coder aDecoder: NSCoder) { 
    fatalError("init(coder:) has not been implemented") 
} 

func addCustomView() { 
    let layerBG = CALayer() 
    layerBG.frame.size.width = 201 
    layerBG.frame.size.height = 36 
    layerBG.backgroundColor = UIColor(patternImage: UIImage(named: "bgMarkerView")!).cgColor 
    layerBG.position = CGPoint(x: 201, y: 18) 
    self.layer.addSublayer(layerBG) 
} 

然後我添加更多的自定義元素在這種觀點在我的視圖控制器

func addInternalElements(adress: String, price: String, logo: String) { 
    let logoView = UIView() 

    let logoImg = UIImage(named: logo) 
    let logoImage = UIImageView(image: logoImg) 
    logoView.addSubview(logoImage) 
    setMarkerLogoConstraint(logoView: logoView, logoImage: logoImage) 

    let adressLabel = UILabel() 
    adressLabel.font = UIFont(name: "helveticaneuecyr-roman", size: 9)! 
    adressLabel.textColor = UIColor.white 
    adressLabel.numberOfLines = 2 
    adressLabel.text = adress 

    let priceLabel = UILabel() 
    priceLabel.font = UIFont(name: "helveticaneuecyr-roman", size: 11.2)! 
    priceLabel.textColor = UIColor.white 
    priceLabel.numberOfLines = 2 
    priceLabel.text = price 

    let icon_like = UIImage(named: "icon_like") 
    let likeBtn = UIButton() 
    likeBtn.setImage(icon_like, for: .normal) 
    likeBtn.setImage(icon_like, for: .selected) 
    likeBtn.addTarget(self, action: #selector(buttonAction), for: .touchUpInside) 
    likeBtn.tag = 5 
    likeBtn.isMultipleTouchEnabled = true 

    self.topBarView.addSubview(btnProfileTopBar) 
    setProfileIconConstraints() 

    self.marker.iconView?.addSubview(logoView) 
    self.marker.iconView?.addSubview(adressLabel) 
    self.marker.iconView?.addSubview(priceLabel) 
    self.marker.iconView?.addSubview(likeBtn) 
    self.marker.iconView?.isMultipleTouchEnabled = true 

    setLogoViewMarkerConstraints(logoView: logoView) 
    setAdressMarkerConstraints(label: adressLabel, logoView: logoView) 
    setPriceMarkerConstraints(label: priceLabel, logoView: logoView) 
    setLikeBtnMarkerConstraints(btn: likeBtn) 
} 

一切看起來不錯,但UIButton的不點擊(likeBtn.addTarget不工作),如果我實現這個方法

func mapView(_ mapView: GMSMapView, didTap marker: GMSMarker) -> Bool { 

    return false 
} 

我不明白,我怎麼知道,我點擊正確的按鈕(會有更多的按鈕)

回答

0

我已經跨越解決了這個問題,創建自定義圖標視圖infoWindow