簡體   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