问题标签 [uinib]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1665 浏览

objective-c - Objective-C - 给定一个 UINib 实例,我如何初始化我的自定义 UIView?

我有一个要从笔尖初始化的自定义 UIView。我无权访问笔尖的名称,我只有一个 UINib 实例。

如何使用此 UINib 对象初始化我的 UIView?

我不想在 NSBundle 中使用 loadNibNamed 方法

0 投票
1 回答
409 浏览

iphone - 为什么使用 UINib 将 customCell 属性设置为 nil

我正在查看一些使用 UITableView 的 cellForRowAtIndexPath 的 UINib 方法的 Apple 示例代码:

我不太明白最后两行

有人可以解释最后两行发生了什么吗?谢谢。

0 投票
1 回答
2309 浏览

iphone - 使用 UINib 为 UITableViewCell 分配插座

我查看了 Apple 的 WWDC 2010 代码中的 TableViewUpdates/TVAnimationGestures 并且在复制 UITableViewCell 子类时遇到了麻烦。这就是我所做的:

我用一些简单的属性创建了一个新的 UITableViewCell 子类:

在.m中,我只是释放内存。在 IB 中,我将我刚刚拖入 IB 的 UITableViewCell 的类更改为 TargetDetailTableViewCell。我将 TargetDetailTableViewCell 的出口连接到适当的标签和图像视图。

在课堂上我想使用这个:

在他们中:

当我运行它时,我收到错误:Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'UITableView dataSource must return a cell from tableView:cellForRowAtIndexPath:'

我唯一能看到苹果的例子和我的例子不同的是,当我在他们的 IB 中点击 UITableViewCell 的子类时,他们有一个 File's Owner 属性集。我不知道他们是如何连接那个插座的,因为它在他们使用单元的类中被声明为一个属性,但是他们没有建立物理 IB 连接。有人可以向我解释一下或者我做错了什么吗?

另外,如果有人可以解释这一点,那就太好了:

似乎您创建了笔尖,而从内存中实例化的笔尖的所有者是您所在的类或自己(我的视图控制器)。然后最后两行让我感到困惑。这就像你告诉你的单元格指向新创建的对象,然后你将新创建的对象设置为 nil。我认为在我的脑海中,单元格现在也指向零。谢谢。

0 投票
3 回答
1121 浏览

ios - 自动调整从笔尖加载的子视图时的意外行为

我正在制作带有许多输入字段的某种“表单”(有些是文本字段,有些是开关,有些是从选择器收集信息等)。
此表单有 6 个部分,某些答案的性质会影响界面的其余部分(例如,如果您选择拥有汽车,则会在下方显示更多选项)。

为了实现这一点,我开始制作一个非常大的视图 ( mainView),它是 a 的子视图UIScrollView,但是它变得太大了,所以我决定为每个部分创建一个 nib 文件。我将每个 nib 文件的文件所有者设置为 my MainFormViewController,然后为每个视图创建一个出口:section1View、section2View 等。我-viewDidLoad像这样加载截面视图:

现在这似乎工作正常,但是我的问题是当我更改这些部分子视图的高度时,我无法让其余的子视图适应高度变化。例如,如果我更改第一部分的高度:

其余视图(section2View、section3View 等)不会“跟随”框架中的变化mainView,无论我尝试什么方向。据我了解,mainView根据子视图的自动调整大小选项,更改的框架应该会影响其子视图的框架,对吗?在我的情况下,子视图只是留在同一个地方。
Interface Builder 中主视图的“Autoresize Subviews”选项被选中。

任何人都可以帮我解决这个问题吗?

0 投票
2 回答
2744 浏览

ios - 使用 instantiateWithOwner: 方法时未调用 awakeFromNib

我有一个小问题,我需要了解这些东西是如何工作的。我在 SO 中进行了搜索,但没有找到任何有效的解决方案。

我的情况如下。

我有一个通过方法UITableViewController加载单元格(在其表中使用)。UINibinstantiateWithOwner:

单元格显示正确。现在,我需要根据不同的标准自定义每个单元格,我认为正确的地方是awakeFromNib方法。Fr 示例,在CustomTableViewCell.m 内,我覆盖awakeFromNib如下:

awakeFromNib不叫。

你能解释一下我做错了什么吗?

先感谢您。

0 投票
1 回答
2770 浏览

ios - 在另一个 XIB 中指定类时如何使用 CustomView.xib 加载 CustomView?

我使用 CustomView.xib 文件创建 CustomView:UIView。现在我想通过将视图拖到另一个 XIB(例如:UIViewController.xib)并选择类:customView 来使用它。

当我初始化CustomView并将SubView添加到另一个视图时,我可以成功加载:

//自定义视图.m

在这种情况下,通过将 CustomCell 绘制到另一个 XIB 中来重用 CustomCell,然后将类指定为 CustomView。我知道 awakeFromNib 被调用,但不知道如何加载 CustomView.xib。怎么做?

*编辑:

在指定类时也会调用 initWithCoder,但它会创建一个循环并使用 loadNibNamed 崩溃。为什么?

0 投票
1 回答
102 浏览

ios - 从 nib 加载 UITableViewCell 子类时给出的类型错误

以下断言失败:

我正在尝试从笔尖创建一个 UITableView 单元子类,这在过去对我有用。现在该方法UIView在 iOS 6.1 中返回 a。有想法该怎么解决这个吗?

0 投票
1 回答
472 浏览

ios - UITableViewCell的XIB中的多个UIView

我一直在尝试使用 UIScrollView 制作自定义 UITableViewCell。我有一个 .xib,其中包含一个 UITableViewCell(仅包含一个 UIScrollView)和一个 UIView,它是单元格的 scrollView 的内容视图。

好的,现在这是应该显示自定义单元格的 UITableView 的代码:

RecessCell 类的标题:

scrollView 是每个单元格内 UIScrollView 的出口。contentView 是 UIScrollView 的内容视图的出口。

好吧,到目前为止,一切似乎都是合法的,但是当我运行该应用程序时:

*由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[setValue:forUndefinedKey:]:此类不符合关键内容视图的关键值编码。”

我已经阅读了大量有关该运行时错误的信息,我能找到的只是:

  • 我需要验证 contentView 实际上是在标题中声明的。(如您所见,它在那里声明)

  • 我需要在 cellForRow 中将 UITableViewCell 更改为 RecessCell,我这样做了。

我该如何解决这个问题?创建自定义 UITableViewCells 这么难吗?

0 投票
1 回答
711 浏览

objective-c - 手动加载 nib 文件时未调用 init 或 initWithNibName

我正在手动加载 nib 文件(为了 UIView 可重用性),用于加载 nib 文件的代码

加载笔尖名称后,我将其添加到 UIScrollView

不是问题是,当我以这种方式加载 nib 文件时,initinitWithNibName没有调用方法,如何解决?

先感谢您,

0 投票
1 回答
86 浏览

iphone - UINib 文件不应该被初始化,直到我告诉他初始化

我有一个 nib 文件,在其中添加了 2 个视图。现在,我想在我的代码中初始化(初始化)我的第二个视图,因为我在初始化后一次又一次地显示它。所以当我尝试加载 nib 文件时:

启动后我成功获得了第二个视图。但我的第一个观点也表明我不想要。我只想启动第二个视图而不是第一个。现在我为此做什么。