繁体   English   中英

View Controller无法正确显示

[英]View Controller not Displaying Correctly

我肯定在这里缺少一些真正的基本知识,但我什至不知道如何简单地描述问题。 我在情节提要中设计了视图控制器布局,只是一堆图像视图,标签,约束等。所有静态操作-代码所做的唯一更改是在按钮(UIViews)上添加了圆形边缘,但我也尝试过没有那个代码就没有区别。

一旦我的选择进入第二个视图控制器,它就会在iPhone上显示如下:

没有图像或文字显示

我已经在2种情况下(大多数情况下)正确显示了它:

  1. 等候。 30秒到10分钟之间的任何时间。 非常不可预测
  2. 按下主屏幕按钮,然后恢复应用程序。 有时,当我这样做时,文字仍然不会显示。

无论哪种方式,这都应该是这样的:

正确显示时

它不会滞后,也不会有任何问题,因为即使显示不正确,UI也可以完全使用。 图像不是很大(最大约为300x600),所以我怀疑这是一个问题。 图像大小也无法说明为什么文本也不显示。 UIImageViews是否会意外地加载其图像?

我认为可能是因为退出/恢复行为而需要刷新视图。 我尝试[eachView setNeedsDisplay]失败。

有任何想法吗?

-更新1-

这是我的情节提要的图像。 正如我所说,一切都是高度静态的。 我不知道为什么它不显示。

故事板

-更新2-

我尝试按照建议将图像文件添加到包中:

束

然后尝试在viewDidLoad方法中以viewDidLoad方式引用它们:

// Interface
@property (weak, nonatomic) IBOutlet UIImageView *backgroundImage;

// viewDidLoad
self.backgroundImage.image = [UIImage imageNamed:@"background.png"];

不幸的是没有差异。

我使用xcassets文件遇到此问题。 如果我只是将它们直接添加到组中,那么它通常就可以正常工作。 请查看此线程以获取更多详细信息。 无法在捆绑软件的xcassets中加载图像

这就是那些遇到同样问题的人的问题所在。 问题屏幕的先前视图控制器是登录屏幕。 收到凭据后,控制器将异步命中服务器以对其进行验证。 然后,服务器的响应在网络线程调用的回调函数中处理。 这意味着segue正在主线程之外被调用。 奇怪的是,segue仍然表现不错,我猜主线程花了一段时间才意识到发生了什么。

TLDR:确保在主线程上执行Segue。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM