IBInspectable 与 Cocoa Touch Framework 不起作用? (附代码)

2024-01-19

我似乎无法让“titleText”IBInspectable 属性正常工作。我有一个带有 UILabel 的简单框架视图,我创建了一个 IBInspectable 变量“titleText”。我注意到可检查的“层”变量按预期工作,但不是我的自定义“titleText”,它应该使用此框架更新主视图。

问题是:

  1. Interface Builder 没有更新 titleLabel? (即在设计时)即我期望这应该如此,就像它适用于“图层”项目一样。

  2. 在运行时,titleLabel 的值也没有采用我在 IB 中设置的值。请注意,我在运行时得到以下输出,即生成此结果的代码发现“self.titleLabel”实际上为零?

代码摘要

(a) gcCustomView.xib Snapshot enter image description here

(b) gcCustomerView.swift

import UIKit

@IBDesignable 
class gcCustomView: UIView {

    @IBOutlet weak var titleLabel: UILabel!
    @IBInspectable var titleText: String = "Default" {
        didSet {
            if  self.titleLabel != nil {
                self.titleLabel.text = titleText
            } else {
                NSLog("Could not set title text as label.text was nil : was trying to set to \(titleText)")
            }
        }
    }


    @IBInspectable var cornerRadius: CGFloat = 0 {
        didSet {
            layer.cornerRadius = cornerRadius
            layer.masksToBounds = cornerRadius > 0
        }
    }
    @IBInspectable var borderWidth: CGFloat = 0 {
        didSet {
            layer.borderWidth = borderWidth
        }
    }
    @IBInspectable var borderColor: UIColor? {
        didSet {
            layer.borderColor = borderColor?.cgColor
        }
    }


    override init(frame: CGRect) {
        super.init(frame: frame)
        commitInit()
    }

    required init?(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
        commitInit()
    }

    // Private

    func commitInit() {
        if self.subviews.count == 0 {
            print("Loading Nib")
            //let bundle = Bundle(forClass: self.dynamicType)
            let bundle = Bundle(for: type(of: self))
            let nib = UINib(nibName: "gcCustomView", bundle: bundle)
            let view = nib.instantiate(withOwner: self, options: nil)[0] as! UIView
            view.frame = bounds
            view.autoresizingMask = [.flexibleWidth, .flexibleHeight]
            addSubview(view)
        }
    }

}

(c) Main.storyboard 快照


Select gcCustomView.xib File's Owner将类名更改为gcCustomerView.

右键单击Label拖自outlet to File Owner

现在如果你右键单击它应该看起来像这样Label

我做了一个演示项目。工作正常。如果您仍然有问题,请告诉我。我将在 Github 上上传我的演示项目。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IBInspectable 与 Cocoa Touch Framework 不起作用? (附代码) 的相关文章

  • 使用 NSPredicate 来检测 NOT CONTAINS

    我放弃 我已经尝试了我能想象到的所有组合来检查一个字符串是否包含另一个字符串 这是描述我想要做的事情的直观语法示例 NSPredicate pPredicate NSPredicate predicateWithFormat NOT K C
  • 新的自动引用计数机制如何工作?

    有人可以简单地向我解释一下 ARC 的工作原理吗 我知道它与垃圾收集不同 但我只是想知道它到底是如何工作的 另外 如果 ARC 的作用与 GC 的作用相同且不影响性能 那么 Java 为什么要使用 GC 为什么它不使用 ARC 呢 每个接触
  • UIControlEventTouchDragEnter 似乎不适用于捕获滑入控件的点击

    如果手指从外部拖动到控件的边界内 我想允许调用一个方法 我以为 UIControlEventTouchDragEnter 会做到这一点 但似乎并没有 有谁知道是否有一种方法可以根据点击滑入控件来触发操作 这就是我正在尝试的 但没有接到我的
  • iOS 8 启动图像文件 - 导航栏和状态栏

    我正在使用 Interface Builder 制作 iOS 8 的启动图像文件 我想要的启动图像非常简单 我认为与 设置 应用程序相同 顶部的导航栏带有一个空的分组 TableView 无标题等 请注意 我通常不使用 Interface
  • 读取静态库中的.pch文件

    我正在创建一个静态库并添加我想要向其他项目公开的所有项目文件 现在 我有一个 pch 文件 其中包含将在整个应用程序中使用的大部分 import 语句 编译此静态库时 由于缺少导入语句 我收到错误 我尝试在 复制标头 和 复制源 中复制 p
  • 找不到 iOS 10 开发者磁盘映像

    我已将我的 iOS 设备更新到 iOS 10 现在 Xcode 在尝试使用 Xcode 7 3 1 在 iPhone 上运行时显示 无法找到开发人员磁盘映像 如何解决该问题并使 Xcode 支持 iOS 10 设备 如果您想在 iOS10
  • 如何在 viewDidLayoutSubviews 中获得正确的视图高度?

    void viewDidLayoutSubviews super viewDidLayoutSubviews NSLog viewDidLayoutSubviews view height f self view frame size he
  • 了解设备类型——视网膜/非视网膜[重复]

    这个问题在这里已经有答案了 可能的重复 检测视网膜显示屏 https stackoverflow com questions 3504173 detect retina display 我们如何从 Objective C 代码中知道设备是否
  • 从字符串初始化单元

    我正在寻找一个Unit symbol String 一种初始化程序认出 不定义符号 这是一个代码片段 通过提供来说明我的问题有限解 to it 尽管下面的解决方案有效 但明确列出了基础框架如果 Apple 在即将推出的 iOS 更新中发布新
  • 如何将 XCode 变量传递到资源文件夹中的 HTML 文件?

    我有一个 UIWebView 它从资源文件夹加载本地 HTML 文件 现在 这个 HTML 文件中包含了 Javascript 我的问题是 有没有办法将 XCode 变量传递给加载到 UIWebView 内的 HTML 文件 我可以将其传递
  • 我应该使用 NSUserDefaults 还是 plist 来存储数据?

    我将存储一些字符串 也许 10 20 个 我不确定是否应该使用 NSUserDefaults 来保存它们 或者将它们写到 plist 中 什么被认为是最佳实践 NSUserDefaults 似乎代码行数较少 因此实现速度更快 我想补充一点
  • 翻转、生长和平移动画

    Look at 这个视频 http youtu be qIqv3OH9XIU t 1m12sMLB At Bat 应用程序的一部分 基本上 我只是想呈现一个modalViewController与UIModalPresentationFor
  • UICollectionView 滚动到任何页脚或页眉视图

    我想滚动到集合视图的页脚或标题视图 但是 标准方法是scrollToItemAtIndexPath仅滚动到单元格 void scrollToBottom NSInteger section self numberOfSectionsInCo
  • iPhone 应用程序中的异步、同步、线程

    我正处于一个应用程序的设计阶段 该应用程序将利用 REST Web 服务 并且在使用异步 同步和线程方面遇到了困境 这是场景 假设您有三个选项可供深入研究 每个选项都有自己的基于 REST 的资源 我可以使用同步请求延迟加载每个请求 但这会
  • 导入 RNCryptor 后架构 armv7 的未定义符号

    我导入了 RNCryptor 可以在这里找到 https github com rnapier RNCryptor https github com rnapier RNCryptor进入我的应用程序 但是 我在日志中收到了三个错误 Und
  • 将通配符包标识符转换为单个 ID

    我在应用程序商店中有一个使用通配符包标识符的应用程序 我想实现应用内购买 这需要非通配符ID 如何将现有应用的通配符 ID 转换为静态 ID 以进行应用内购买和推送通知 应用程序的捆绑标识符在更新之间必须始终保持相同 但 AppID 实际上
  • 如何以方向友好的方式在选项卡栏上显示 UIDatePicker?

    我想滑入UIDatePicker当我的用户点击我的表格视图日期字段时 就像在标准联系人应用程序中一样 当用户点击生日字段时 还有一个额外的致命细节 它位于标签栏应用程序中 我想要UIDatePicker滑过标签栏 当用户将手机横向放置时仍然
  • 从一个模态视图无缝翻转到另一个模态视图,而不显示纯色背景

    我的 iPad 应用程序的 UI 如下 当我点击Settings按钮 我希望对话框水平翻转以显示设置对话框 我这个工作正常 但是 当对话翻转时会显示背景颜色 如你看到的 有什么办法可以让对话框翻转时不显示该颜色块吗 我希望它看起来更加无缝
  • 如何使用 iPhone 将照片上传到服务器?

    我正在编写一个 iPhone 应用程序 它可以拍摄照片然后将其上传到服务器 如何使用 Cocoa 将照片上传到服务器 我想我在某处使用 NSUrl Thanks Header interface EPUploader NSObject NS
  • 如果我使用自定义 UITableViewCell,是否需要设置 heightForRowAtIndexPath?

    如果我使用自定义 UITableViewCell 是否需要设置 heightForRowAtIndexPath 在我的 NIB 中 我已经设置了单元高度 当我覆盖 heightForRowAtIndexPath 时 单元格的内容不会出现 即

随机推荐