问题标签 [initwithframe]

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 投票
0 回答
802 浏览

ios - 为什么使用 initWithFrame: 方法启动视图时应用程序崩溃?

Fabric Crashlytics 报告了三个崩溃问题。我检查了 Stacktrace,这些问题是相似的。当启动 UIView(UIView 的子类、UIWebView 等)时,我的应用程序崩溃了。很难重现,因为一天只有少数用户受到影响。如果您能帮助我,我将不胜感激。

问题 1 堆栈跟踪:

问题1代码:

问题 2 堆栈跟踪:

问题2代码:

问题 3 堆栈跟踪:

问题3代码:

0 投票
1 回答
264 浏览

macos - InitWithCoder 从未调用基于 Cocoa NSView 的类

我创建一个XIB.

我创建了这个名为的类MyCustomView并将其分配给XIB's File Owner。

NSView我在主应用程序上创建了一个。

我将该视图更改为MyCustomView.

我运行应用程序。MyCustomViewinitWithCoder不运行。initWithFrame不运行。awakeFromNib不运行。

什么都没发生。

有任何想法吗?

0 投票
2 回答
3046 浏览

ios - ios:关于 init(frame:) 和 init?(coder:) 的问题

init(frame:)Apple 的教程描述了和init?(coder:)as之间的区别

您通常通过以下两种方式之一创建视图:以编程方式初始化视图,或允许情节提要加载视图。每种方法都有一个相应的初始化程序: init(frame:)用于以编程方式初始化视图和 init?(coder:)从情节提要加载视图。您将需要在自定义控件中实现这两种方法。在设计应用程序时,Interface Builder 会在您将视图添加到画布时以编程方式将其实例化。在运行时,您的应用会从情节提要中加载视图。

我对“以编程方式初始化”和“由情节提要加载”的描述感到非常困惑。假设我有一个UIView被调用的子类MyView,“以编程方式初始化”是否意味着我编写代码来添加一个实例,MyView例如:

虽然init?(coder:)Main.storyboard我从对象库中拖动一个UIView然后在身份检查器中将其类设置为MyView

此外,在我的 xcode 项目中,这两种方法最终得到了不同的模拟器布局和Main.storyboard相同的代码: 在此处输入图像描述

为什么他们的行为不同?(我从对象库中拖动一个UIView并将其类设置为 RecordView)

0 投票
1 回答
75 浏览

ios - 在 Superview 中更改子视图的框架

我有一个 ViewController,它添加一个UIView,SpeciesImageView作为子视图viewDidLoad并在viewWillLayoutSubviews.

SpeciesImageView没有 nib 文件。当我们在 viewDidLoad 中创建时,它会在类中speciesImageView调用。initWithFrameSpeciesImageView

这工作正常(横向和纵向),直到手机旋转。我尝试将约束设置为speciesImageView.frame.size.width,但这不起作用,因为initWithFrame在方向更改时不会调用,因此高度/宽度speciesImageView保持不变。

另一方面, usingscreenRect不会改变 的实际大小UIView,它会改变它在超级视图中的大小。所以换句话说,我还没有找到改变实际speciesImageView方向变化大小的方法。

而且由于我丢失的原因,当您将其旋转回原始位置时,它会完全混乱。

进入 旋转一次 再转回来

0 投票
1 回答
36 浏览

ios - UICollectionViewCell -- 使 selectedBackgroundView 比单元格本身大

我试图找出一种方法,使我的单元格 selectedBackgroundView 大于单元格本身。

我的以下方法旨在制作 selectedBackgroundView:单元格的超级视图宽度(屏幕的整个宽度)X单元格的高度

选择此单元格时,背景颜色仅在单元格的范围内扩展(不达到超级视图的高度)

我怎样才能最好地完成使 selectedBackgroundView 大于单元格?我在这里采取了完全错误的方法吗?

0 投票
1 回答
44 浏览

ios - super initWithFrame 从 -traitCollection 返回 nil,这是不允许的

我正在 XCode 12.0 上运行我的 Objective-C 项目之一。我有 UIControl 子类“SeatingPanelControl”,从中创建了另一个名为“IpadSeatingPlanControl”的子类,其中我在执行下面的代码时遇到了崩溃,但标题中提到了异常(也在屏幕截图中给出):

在此处输入图像描述

更新(解决方案):

我弄清楚了问题的原因。在修复 XCode 12 的 IMP 问题时,我错误地删除了一行代码。根据当前的代码设置,它在 iPhone 上运行良好,但不适用于 iPad。恢复代码行解决了这个问题。

在此处输入图像描述