一个xib,几个子类

2023-11-25

我有一个用于自定义 UIView 子类的 xib 文件。工作正常。我能够加载正确的 nib 并创建我的类的实例,它包含我添加到 xib 文件中的所有子视图。

但是,我也对该视图进行了子类化,但我不知道如何创建此类的实例并让它使用父类使用的 xib 文件。这可能吗?我不想为我的子类创建一个新的 xib 文件,因为视图层次结构、子视图和 GUI 看起来相同,只是代码不同。

我可以加载一个笔尖并将其“连接”到另一个类,而不是在 xib 设置中指定为“自定义类”的类吗?或者我可以创建视图的新实例并告诉它使用特定名称的 xib 吗?


你可以尝试写一些非常奇怪的东西-awakeAfterUsingCoder:来替代创建的对象,但这确实很不稳定,只有少数人可以做对。

问题是 .xib 文件存储一组序列化对象,当加载该组时,有关每个对象的信息(即它的类、大小、其他属性、父对象、约束)也会被反序列化和应用。所以,xib 文件存储哪个类应该接收+alloc和其他消息,以及哪些对象将通过 KVC 接收所有属性(-setValue:forKey:)。所以,不,你不能只配置一些类来加载一些 xib,因为 xib 文件告诉应该加载哪个类。

作为解决方案,我建议重构您的代码,(例如)将不同的子类逻辑封装到其他对象中。因此,在您拥有具有不同逻辑的多个子类之前,您将拥有可从 xib 加载的单个类,但您必须设置一些MyDifferentLogicVariant1Implamentor实体为“不同”类保留不同的逻辑。

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

一个xib,几个子类 的相关文章

  • 从 robovm 项目创建 iOS 静态库(JNI 中的 BAD_ACCESS)

    我有大量的Java代码 只有计算函数 没有UI 我想在iOS中将其重用为静态库 我的方法是使用robovm http www robovm com并按照robovm论坛中两篇文章中描述的非官方方式创建静态库 1 基本方式 https gro
  • 将 UIToolBar 添加到所有键盘(swift)

    我正在尝试以尽可能少的重复次数将自定义 UIToolBar 添加到我的所有键盘中 我目前的做法要求我将代码添加到所有 viewDidLoads 中 并将每个文本字段的委托分配给我正在使用的 viewController 我尝试创建自己的 U
  • 如何检测用户是否第一次打开应用程序[重复]

    这个问题在这里已经有答案了 是否可以检测用户是否是第一次打开iOS应用程序 使用Objective C 我想在用户第一次打开应用程序时显示欢迎消息 但之后不再向他们显示 我正在寻找类似的东西 BOOL firstTime AppDelega
  • 如何使用 CNContacts 快速获取手机号码?

    我有一些代码可以检索用户联系人中的所有电话号码 但只想过滤掉手机号码 目前 我只是通过将第一个数字为 或第二个数字为 7 的数字添加到数组中来实现此目的 如下所示 func findContacts gt CNContact let key
  • Xcode 9:“clang:错误:生成多个输出文件时无法指定 -o”

    我刚刚将 Xcode 更新到版本 9 并且在编译时开始收到以下错误消息 该问题似乎与将 优化级别 参数设置为 无 即 O0 进行编译有关 如果我将其设置得更高 错误就会消失 但是当我增加优化时 调试工具将无法正常工作 例如变量跟踪 我查看了
  • nlohmann/json 框架中的未知断点

    一段时间以来 当我在启用断点的 Xcode 下运行我的应用程序时 我显然在名为 nlohmann basic json 的系统框架中遇到了一个未知断点 我可以毫无问题地继续执行 但这无论如何都很烦人 知道这个断点的原因是什么 或者更好的是
  • 如何为 iPhone 6+、6 和 5 指定不同尺寸?

    我想让 iPhone 6 6 和 5 上的视图看起来几乎相同 在附图中 我的意思是 例如 取消 按钮在 iPhone 5 中距离屏幕左边缘应为 30 像素 在 6 中为 35 像素 在 6 中为 45 像素 其他元素也类似 如何为每种类型设
  • 有什么方法可以询问方法的名称吗?

    我正在尝试调试我正在开发的 iPhone 应用程序 向各种源文件添加 50 条 NSLog 语句的想法让我感到很兴奋 我想做的是写一对陈述 比如 NSString methodName self methodName NSLog metho
  • 如何在 iOS 13 中将 UISegmentedControl 的背景颜色设置为白色

    iOS 13 对 UISegmentedControl 进行了一些更改 包括切换所选片段时的非常漂亮的动画 但是我注意到它没有显示backgroundColor属性正确 它似乎总是有一点色彩 我见过回答如何设置的问题selectedSegm
  • 为什么选择选择器选项后我的 SwiftUI 页面标题会发生变化?

    struct SettingsView View let settings Setting Setting name Aperture Increments options 1 3 1 2 1 Setting name Shutter Sp
  • 如何删除 UITableView 中的缩进?

    首先 我对此很陌生 我很可能忘记了一些非常简单的事情 问题 我正在制作一个应用程序 在 a 中显示来自 imgur com 的随机图像tableView 由于某种原因 所有单元格都会缩进少量 如下图所示 我摆弄了许多设置storyboard
  • AVAudioPlayer 无法从网站播放 m4a 或 mp3 文件类型

    我试图在我的应用程序中找到一个仅纯 m4a 声音的 URL 我有音频的 URL 理论上可以下载它 然后 使用下载的文件URL到声音 我尝试使用AVAudioPlayer播放它 但它不播放任何声音 这是我的代码 在 URL 检索函数中 我调用
  • 防止 iOS 键盘在 cordova 3.5 中滚动页面

    我正在使用 Cordova 3 5 和 jQuery mobile 构建 iOS 应用程序 我在大部分应用程序中禁用了滚动功能 但是 当我选择输入字段时 iOS 键盘会打开并向上滚动页面 我不想要这个功能 由于输入足够高 键盘不会覆盖它 我
  • UICollectionView setLayout:animated: 不保留 zIndex

    我注意到打电话时setLayout animated in a UICollectionView要在两个布局之间切换 当前可见的单元格不遵循zIndex它的布局属性已设置在layoutAttributesForItemAtIndexPath
  • iOS:Facebook 登录访问令牌错误:由于模拟器错误,回退到从 NSUserDefaults 加载访问令牌

    根据说明进行配置后 我不断收到此错误 并且无法在我的应用程序上成功使用 Facebook 登录 我在 XCode 8 1 上运行它并使用 iOS 10 1 模拟器 我按照 Facebook iOS SDK 指南中的步骤操作 并将 Faceb
  • ios8 键盘高度有所不同

    我使用下面的代码来获取键盘高度 该高度在带有 ios8 的 iPhone 5s 设备中与带有 ios7 的 IPhone4s 设备中有所不同 因此 当我在带有 ios8 的 iPhone5s 中点击它时 我的文本字段移动得非常高 而相同的代
  • Glib 在 iPhone 应用程序中的使用

    我想基于现有的开源 Objective C 框架开发一个 iPhone 应用程序 但是该框架广泛使用了 glib 库 我找不到一种方法来构建和包含 iPhone 应用程序的 glib 库 非越狱 有什么办法可以做到这一点 或者有没有推荐的方
  • 上传存档错误:“缺少 iOS 发行版签名身份......”

    我正在尝试使用 Xcode 将我的 iOS 应用程序存档上传到 iTunes Connect 但是当我单击 上传到 App Store 时 出现错误 Xcode 尝试查找或生成匹配的签名资产并 由于以下问题未能做到这一点 缺少 iOS 为
  • Fitbit oauth2 公共 API 停止工作。给出错误 - 抱歉,这不是你..是我们

    几个月前 我准备了一个关于 Fitbit oauth2 公共 API 的演示 其中我使用特定用户登录并获取他的活动 一切正常 但最近 我打开演示并尝试使用同一用户登录 但它没有登录并反复出现此错误 我尝试更改在 Fitbit 上注册的演示应
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两

随机推荐

  • 使用 ifort 进行数组复制时程序崩溃

    这个程序崩溃了Illegal instruction 4在 MacOSX Lion 和 ifort IFORT 12 1 0 20111011 上 program foo real pointer a b allocate a 5400 5
  • 在画布中拖动时图像闪烁

    我正在画布中拖动图像 但在拖动过程中图像会闪烁 我认为函数调用存在一些问题 我已经实现了 onmousedown onmouseup 和 onmousemove 事件的功能 我在拖动过程中将图像绘制到画布上 这是我的代码 div div
  • 如何在 C++ 中重复字符串多次?

    我想在 C 中的字符串开头插入 n 个空格 或任何字符串 有没有直接的方法可以使用 std strings 或 char 字符串来执行此操作 例如 在 Python 中你可以简单地做 gt gt gt 5 lolcat lolcat 在重复
  • 如何获取进程ID来杀死nohup进程? [关闭]

    Closed 这个问题是与编程或软件开发无关 目前不接受答案 我正在服务器上运行 nohup 进程 当我尝试杀死它时 我的腻子控制台会关闭 这是我尝试查找进程 ID 的方法 ps ef grep nohup 这是杀死命令 kill 9 17
  • 如何保持对话框中的沉浸模式?

    当我的活动显示自定义对话框时 如何维护新的沉浸模式 我使用下面的代码来维护对话框中的沉浸模式 但是使用该解决方案 当我启动自定义对话框时 导航栏会出现不到一秒钟 然后就会消失 以下视频更好地解释了该问题 当导航栏出现时 请查看屏幕底部 ht
  • Flutter:Streambuilder 导致 Firestore 上的读取次数过多

    我正在尝试构建一个简单的报价 Flutter 应用程序 在其中显示报价列 表并允许用户 喜欢 报价 我正在为此使用 Streambuilder 我的问题是 Firestore 使用仪表板显示的读取次数非常多 每个用户几乎 300 次 即使我
  • 服务帐号需要哪些预定义 IAM 角色才能完成 Google Cloud Run 快速入门:构建和部署?

    我想将 Google Cloud Run 与 Google App Engine 和 Google Cloud Functions 进行比较 云跑快速入门 构建和部署似乎是一个很好的起点 我的应用程序默认凭据太宽泛 无法在开发过程中使用 我
  • 如何在离散BarChart nvd3.js上设置y轴上的域和比例

    我在我的一个应用程序中使用 d3 js 图表 他们在这张图片中 看Charts 对于货币图表上的 Y 轴 参见图片 我希望最大值四舍五入为 400 无论这里的最大条形大小是多少 它都是 358 72 美元 但我想将条形保持在 358 72
  • 在RecyclerView中显示SQLite数据

    我搜索了很多 但没有找到任何有关如何在 RecyclerView 中显示 SQLite 数据的分步指南 谁能向我解释我该怎么做 My 数据库适配器 public class DataBaseAdapter DataBaseHelper he
  • SQL CE 最大长度

    我需要在 WP7 应用程序中存储文章 我只想使用数据库 这样我就可以通过未读的文章等进行查询 我在 Mango 中遇到了 SQL CE 的一个大问题 似乎有 4000 个字符的限制 而我的文章是 4200 个 而这还不是最大的问题 如果有的
  • T-SQL 中“\”和“$”的用法是什么?

    正如我发现的 在 SQL Server 书籍中 Backslash Transact SQL 将长字符串常量分成两行或更多行以提高可读性 and SELECT Clause Transact SQL IDENTITY ROWGUID And
  • 将元数据存储在 CSV 文件中

    我知道这是对 CSV 格式的滥用 我确实明白更合适的解决方案是导出xls xlsx文件 或为用户提供 OData 端点并让他们使用 power hub 检索数据 此时我想坚持使用 CSV 因为它更容易实现 我需要将平面行列表 报告 导出为
  • 如何最好地在 C# 中实现可公开访问的常量

    在 C 中实现可公开访问的常量似乎有三种选择 我很好奇是否有任何充分的理由选择其中之一 或者这只是个人喜好问题 Choice 1 私有字段加上属性获取器 private const string someConstant string th
  • 如何将表单添加到控制台应用程序以便用户可以选择文件?

    我创建了一个控制台应用程序并让它按照我想要的方式工作 使用VS2010中的 添加项目 gt 添加Windows窗体 选项 它已经自动创建了我需要的内容 我添加了一个按钮和代码来检索 Excel 文件 如下 我的问题是 我如何获取他们创建的文
  • 在 Open ES iPhone 应用程序中使用 VAO 围绕 VBO 会导致调用 glDrawElements 时 EXC_BAD_ACCESS

    我正在尝试将我的代码提升到一个新的水平 遵循 Apple 的一些最佳实践 我尝试围绕我的顶点缓冲区对象 VBO 实现顶点数组对象 我像这样设置我的 VBO 和 VAO void setupVBOs glBindBuffer GL ARRAY
  • 如何使用Python在屏幕上绘制一个空矩形

    我不是专家 我试图在屏幕上显示一个矩形 该矩形从固定起点开始跟随鼠标移动 就像您在文字或绘画中选择某些内容一样 我带着这个代码 import win32gui m win32gui GetCursorPos while True n win
  • 如何将 ATL/MFC CString 转换为 QString?

    鉴于项目的编码可能是 Unicode 但不确定 将 ATL CString 转换为 QString 的最佳方法是什么 我想到的是这样的 CString c T SOME TEXT std basic string
  • 将 Guice 组件集成到 Spring 应用程序中

    我们有一个基于 Spring 框架的应用程序 需要集成使用 Google Guice 构建的组件 有人能给我们一些关于如何做到这一点的建议吗 我们遇到了以下链接 展示了如何将 Spring 集成到 Guice 中 但我们需要相反的方式 ht
  • 匹配文件对象中的多行正则表达式

    如何从文件对象 data txt 中提取此正则表达式中的组 import numpy as np import re import os ifile open data txt r Regex pattern pattern re comp
  • 一个xib,几个子类

    我有一个用于自定义 UIView 子类的 xib 文件 工作正常 我能够加载正确的 nib 并创建我的类的实例 它包含我添加到 xib 文件中的所有子视图 但是 我也对该视图进行了子类化 但我不知道如何创建此类的实例并让它使用父类使用的 x