![](/img/trans.png)
[英]View controller not displaying subviews correctly when programmatically set as root view controller
[英]View Controller not Displaying Correctly
我肯定在這里缺少一些真正的基本知識,但我什至不知道如何簡單地描述問題。 我在情節提要中設計了視圖控制器布局,只是一堆圖像視圖,標簽,約束等。所有靜態操作-代碼所做的唯一更改是在按鈕(UIViews)上添加了圓形邊緣,但我也嘗試過沒有那個代碼就沒有區別。
一旦我的選擇進入第二個視圖控制器,它就會在iPhone上顯示如下:
我已經在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.