自定义标注-ViewDidLoad-Swift



我在Swift应用程序中有一个映射引脚标注的自定义类,它连接到一个.xib文件。当用户点击pin并加载视图时,我正试图更改为视图内部的标签文本。这是我所拥有的:

import Foundation
import MapKit
class CustomCallout: UIView {
    @IBOutlet weak var testLabel: UILabel!
    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)!
        testLabel.text = "test"
    }

    override func hitTest( point: CGPoint, withEvent event: UIEvent?) -> UIView? {
        let viewPoint = superview?.convertPoint(point, toView: self) ?? point
        //let isInsideView = pointInside(viewPoint, withEvent: event)
        let view = super.hitTest(viewPoint, withEvent: event)
        return view
    }

    override func pointInside(point: CGPoint, withEvent event: UIEvent?) -> Bool {
        return CGRectContainsPoint(bounds, point)
    }
}

我一直收到错误:

fatal error: unexpectedly found nil while unwrapping an Optional value

突出显示这一行:

testLabel.text = "test"

我该如何让它发挥作用?加载此详图索引视图时,如何更改出口的文本?

您可以引用它:CustomView您可以使用以下步骤创建自定义视图:

  • 首先为自定义视图创建子类
  • 单击以将文件集File's Owner xib到此类
  • 将视图拖动到类中,并将其设置为contentView,同时拖动所有要类的元素
  • 在课堂上添加以下代码:

    required init?(coder aDecoder: NSCoder) {
       super.init(coder: aDecoder)
       self.commonInit()
    } 
    private func commonInit() {
        NSBundle.mainBundle().loadNibNamed("CutomViewDemo", owner: self, options: nil)
        guard let content = contentView else { return }
        content.frame = self.bounds
        content.autoresizingMask = [.FlexibleHeight, .FlexibleWidth]
       self.addSubview(content)
    }
    

现在,您可以使用customView。你可以查看我的演示:演示

最新更新