objective-c - awakeFromNib 末尾布局不正确 - 需要调整大小来纠正它

标签 objective-c cocoa

我有一个 awakeFormNib 函数,它添加了一些 subview 。它没有使用自动布局。通常它看起来很完美。在某些机器上,它的 subview 之一看起来太小。一旦我调整窗口大小(用鼠标),一切都会完美呈现。似乎这些机器上的一些布局操作发生在 awakeFromNib 之前(猜测)。我喜欢一种非常不优雅的解决方法,在 awakeFromNib 结束时,我在其中一个 subview 上调用 setFrame 以将其大小更改一个像素。这必须与使用鼠标调整大小具有相同的效果,因为它会导致布局按预期显示。

所以我的问题是这样的:我是否可以在窗口或其 subview 上调用一个函数,该函数会导致与调整大小(使用鼠标)或更改代码中的帧大小引起的相同布局操作。我尝试调用 setNeedsLayout 和 setNeedsDisplay:但没有成功。

最佳答案

您需要将所有框架代码从 awakeFromNib 重构为:

- (void)layoutSubviews {
  [super layoutSubviews];

}
为什么?

因为这是当 View 知道它的大小尺寸时调用的方法。每当 View 的框架发生更改时,也会调用此方法。

关于objective-c - awakeFromNib 末尾布局不正确 - 需要调整大小来纠正它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24396962/

相关文章:

ios - 在 ARC 下安全地将对象作为不透明的上下文参数传递

objective-c - 如何使用 Objective c 绘制图像的 RGB 颜色直方图

macos - Mac 沙箱和文件 ioctl

ios - PDFview 在单页文档中滚动到页面底部

ios - Xcode 6 和 Cocoapods 没有正确引用 iOS 框架

iphone - 使用距位置的距离有效地计算最近的 5 个位置

iphone - 将 NSString* 转换为 char?

java - 如何在 native 代码(Java、ObjectiveC/Swift)中读取 AsyncStorage

objective-c - 用 pushViewController 替换 Storyboard Segue 会导致奇怪的行为

objective-c - 应用非标准电源断言并创建虚拟 HID