2015-04-07 79 views
0

我必須在這裏丟失一些非常基本的東西,但我甚至不知道如何簡單地描述問題。我在故事板中設計了我的視圖控制器佈局,只是一堆圖像視圖,標籤,約束等。所有靜態 - 代碼所做的唯一更改是向按鈕(UIViews)添加圓邊,但我也試過沒有代碼沒有區別。視圖控制器不能正確顯示

一旦我SEGUE繼續進入第二個視圖控制器,它會顯示這樣的iPhone:

None of the images or text is displaying

我已經得到了它2例正常顯示(大部分時間):

  1. 等待。 30秒到10分鐘之間。非常不可預知
  2. 按下home鍵然後重新開始應用程序。有時當我這樣做時,文本仍然不會顯示。

無論哪種方式,這是它應該是這樣的:

When displaying properly

它不會滯後或任何作爲UI是完全可用,即使它沒有正常顯示。圖像不是很大(最大的大約是300x600),所以我懷疑這是一個問題。圖像大小也不會解釋爲什麼文本不顯示。 UIImageViews是否異步加載它們的圖像?

我認爲這可能是因爲退出/恢復行爲需要刷新視圖。我試過[eachView setNeedsDisplay]沒有成功。

任何想法?

- 更新1 -

這裏是我的故事板的圖像。正如我所說,一切都是高度靜態的。我不知道爲什麼它不顯示。

Storyboard

- 更新2 -

我嘗試添加我的圖像文件捆綁的建議:

Bundle

然後試圖pragrammatically引用它們在viewDidLoad方法中:

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

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

不幸的是沒有差別。

+0

'UIImageViews'同步載入圖像,但給定圖像的大小,如果圖像在你的包上,它應該是問題。嘗試發佈代碼如何加載圖像。 –

+0

你是在IB還是在代碼中設置圖像? – dasdom

+0

如果您正在使用它們,您可以發佈您使用viewDidLoad和viewDidAppear/viewWillAppear方法的代碼嗎?同樣在dasdom問,是從故事板上的UIImageView對象內設置的圖像,還是您在代碼中的任何位置設置圖像,比如前面的viewController的prepareForSegue代碼?任何更多的信息,你可以提供更好的。 –

回答

0

問題出在同一問題上。問題屏幕的前一個視圖控制器是一個登錄屏幕。在接收到證書後,控制器將異步地命中服務器以驗證它們。然後在網絡線程調用的回調函數中處理來自服務器的響應。這意味着segue被從主線程中調用。奇怪的是,segue仍然表現良好,我想只花了一段時間讓主線程知道發生了什麼。

TLDR:確保在主線程上執行Segue。

0

我有這個問題使用xcassets文件。如果我只是直接將它們添加到組中,它往往工作得很好。看看這個線程的一些更多細節。 Impossible to load an image in xcassets on bundle

+0

請原諒我對iOS的無知 - 將它們直接添加到包中,是否意味着在xcode項目中創建一個新的組(文件夾),然後在其中拖動圖像? (我假設xcode會自動完成所有必要的鏈接?) – Ryan

+0

是的,正好。你甚至可以更進一步,並在你的viewController中明確地設置你的imageViews的圖像。 I.E. UIImage * image = [UIImage imagedNamed:@「some_image_file」]; self.imageView.image = image;另一件要考慮的是圖像的文件格式。 Xcode非常喜歡.png文件。其他類型的支持,但你需要包括像這樣的擴展[UIImage imagedNamed:@「some_image_file.jpg」]; – Dare

+0

謝謝,但它只是給了我相同的結果。 – Ryan

相關問題