2011-06-11 114 views
1

我想在屏幕上顯示一個新的視圖。在展示它之前,我想用一個剛剛由相機捕獲的圖像來初始化它。 這是代碼的一部分:iPhone「addSubView」方法和視圖初始化

[self.view addSubview:self.photoPreviewView.view];  
UIImageView *photo = self.photoPreviewView.imageView; 
[[self captureManager] captureStillImage:photo]; 

正如你可以看到,我先請addSubView,後來才設置的照片。我這樣做是因爲「imageView」(「photoPreviewView.imageView」)只有在調用「addSubView」後才能訪問。

當第一個視圖顯示爲白色,並且僅顯示一張照片時,這會產生不好的體驗。

有沒有辦法處理這個問題?

+0

可以使圖像視圖作爲透明,self.photoPreviewView.view.backgroundColor = [的UIColor clearColor];或者可能會放置一些默認圖像,直到新圖像加載... – Sanniv 2011-06-11 21:29:31

回答

1

不知道要明白你的問題,但是,
您可以將代碼之前嘗試這個辦法:

[self.photoPreviewView.view addSubview:nil]; 

也許這將允許您訪問的photoPreviewViewimageView財產。

讓我知道它是否有效。

+0

您的建議確實有效。我可以訪問「photoPreviewView」的「imageView」成員。但是,由於某種原因,問題仍然存在:相機拍攝照片,然後我看到白色屏幕一秒鐘,然後纔看到新照片上的照片。我預計,因爲我在添加子視圖之前將圖像分配給視圖,圖像應該已經存在。任何解決這個問題? – bashan 2011-06-13 21:05:27

1

沒有真正足夠的信息 - 如果photoPreviewView由從NIB文件和ImageView的加載 創建是一個IBOutlet那麼的聯繫不是爲ImageView的建立,直到您訪問photoPreviewView的視圖屬性之後 。

如果是這種情況簡單地做一個

[self.photoPreviewView view]; 
[[self.captureManager captureStillImage:self.photoPreviewView.imageView]; 
[self.view add subView;self.photoPreviewView.view]; 
+0

謝謝,你的建議很好,但我仍然有問題。你可以看看我在下一個答案中寫的註釋。 – bashan 2011-06-13 21:08:13