簡體   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