繁体   English   中英

自定义标注-ViewDidLoad-Swift

[英]Custom Callout - ViewDidLoad - Swift

我有一个自定义类,用于Swift应用程序中的地图图钉标注,该类连接到.xib文件。 当用户单击视图加载的引脚时,我试图更改为视图内部标签的文本。 这是我所拥有的:

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您可以使用以下列表步骤创建customview:

  • 首先,为自定义视图创建子类。
  • 单击以xib将File's Owner设置为此类。
  • 拖动视图以分类,并将其设置为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。 您可以查看我的演示: 演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM