ios - 自定义标注 - ViewDidLoad - Swift

标签 ios swift

我在 Swift 应用程序中有一个 map 图钉标注的自定义类,它连接到一个 .xib 文件。当用户单击图钉并加载 View 时,我试图更改为 View 内标签的文本。这是我所拥有的:

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"

我如何让它工作?加载此标注 View 时如何更改 socket 的文本?

最佳答案

您可以引用:CustomView 您可以使用下面列出的步骤创建自定义 View :

  • 首先为自定义 View 创建子类。
  • 单击将 xib 文件设置File's Owner 到此类。
  • 将 View 拖到类中并将其设置为 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了。您可以查看我的演示:Demo

关于ios - 自定义标注 - ViewDidLoad - Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34561576/

相关文章:

ios - 制作新目标时如何设置配置文件

ios - 在应用程序退出时保存变量

ios - 设置 UIActivityIndi​​catorView 背景

ios - 优雅地将 UIView 移动到键盘的 inputAccessoryView

iOS 通用应用程序布局在 iPhone 上都搞砸了吗?

ios - Swift:将 [String] 拆分为具有给定子数组大小的 [[String]] 的正确方法是什么?

ios - 如何复制两个标签的结果?

ios - swift WebView 代理

ios - 自定义 TableViewCell | swift

ios - 为什么在第 4 次运行我的 spritekit 场景后我有很大的滞后?