我必须遗漏一些非常基本的东西,但我甚至不知道如何简单地描述问题。我在我的故事板中设计了我的视图控制器布局,只是一堆图像视图,标签,约束等。所有静态 - 代码所做的唯一更改是为按钮添加圆边(UIViews),但是我已经也尝试没有代码,没有任何区别。
一旦我的segue跟随到第二个视图控制器,它就会在iPhone上显示如下:
我已经让它在2种情况下(大部分时间)正确显示:
无论哪种方式,这都应该是它的样子:
它不会延迟或任何因为UI即使在没有正确显示的情况下也完全可用。图像不是很大(最大约300x600),所以我怀疑这是一个问题。图像大小也不能解释文本也不显示的原因。 UIImageViews是否异步加载它们的图像?
我认为由于退出/恢复行为,可能需要刷新视图。我试过[eachView setNeedsDisplay]
没有成功。
有什么想法吗?
- 更新1 -
这是我的故事板的图像。正如我所说,一切都是高度静态的。我不知道它为什么不显示。
- 更新2 -
我尝试按照建议将图片文件添加到捆绑包中:
然后尝试用viewDidLoad
方法以语法方式引用它们:
// Interface
@property (weak, nonatomic) IBOutlet UIImageView *backgroundImage;
// viewDidLoad
self.backgroundImage.image = [UIImage imageNamed:@"background.png"];
不幸的是没有区别。
答案 0 :(得分:0)
我使用xcassets文件遇到过这个问题。如果我只是将它们直接添加到组中,它往往会正常工作。查看此主题以获取更多详细信息。 Impossible to load an image in xcassets on bundle
答案 1 :(得分:0)
以下是那些遇到同样问题的人的问题。问题屏幕的先前视图控制器是登录屏幕。收到凭据后,控制器将异步命中服务器以验证它们。然后,在网络线程调用的回调函数中处理来自服务器的响应。这意味着segue正在从主线程调用。奇怪的是,segue仍然表现不错我想主要线程花了一段时间才意识到发生了什么。
TLDR:确保在主线程上执行Segue。