[iOS] xib上設定UI元件的問題

最近手誤,犯了一個錯誤,測試後發現這有趣的問題,分享出來讓大家可以更了解xib的功能。

以下是swift的程式碼。

我在xib上拉了一個UIWebView,都設定好位置後,我因為沒有設定IBOutlet的緣故,以為還要自己初始化,就在viewDidLoad裡面又初始化了一次:

self.webView = UIWebView()

這時候,我就把self.webView原本指向的xib幫我初始化好的UIWebView的記憶體位址給改變了,self.webView這時指向我初始化的UIWebView物件。

之後我設定了文字:

self.webContentView.loadHTMLString("XXXXX", , baseURL: nil)

結果跑出來當然是空白一片,我還想發生什麼事情了,後來才想通,因為字串會被載入到我設定的UIWebView的記憶體位置上,而不是xib設定的記憶體位址,所以我設定了位置並加入看看是不是如我所想:

self.webView.frame = CGRectMake(0, 0, 300, 100)
self.view.addSubview(self.webView)

這樣跑出來的結果是,的確畫面上方出現了我要的結果,原來的xib上拉好的UIWebView空白一片,所以xib的確會幫你初始化好元件的記憶體位址,你自己再這樣去設定的話,只會造成不可預期的結果。

留言