2010-03-28 36 views
7

Chế độ xem chính của ứng dụng của tôi có một giao diện người dùng. Nó có màu trắng trong một giây trước khi nó có thời gian để hiển thị HTML mà ứng dụng tạo ra.iphone uiwebview xem màu trắng ban đầu

Có cách nào để tạo màu uiwebview màu đen hoặc màu khác trước khi hiển thị không? Đèn flash màu trắng không phải là một phần trong kế hoạch của tôi cho một quá trình chuyển đổi trực quan mượt mà.

Câu trả lời Objective-C hoặc MonoTouch là tốt, tôi viết hai thứ tiếng.

+0

Bạn có đang đặt màu nền của chế độ xem web không? –

+0

Tôi đã thử, nhưng giao diện web đầu tiên xuất hiện, nhấp nháy màu trắng, sau đó chuyển sang màu của tôi. –

Trả lời

3

Một điều bạn có thể thử là đặt UIView với màu bạn muốn và định vị nó trên UIWebView với cùng chiều rộng và chiều cao. Sau đó, trong phương thức webViewDidFinishLoad, đặt UIView thành ẩn.

31

Một điều để thử là làm cho cái nhìn minh bạch:

webView.backgroundColor = [UIColor clearColor]; 
webView.opaque = NO; 

Điều này làm cho công việc bổ sung hợp lại, tuy nhiên, do đó bạn có thể thiết lập lại các giá trị một cái gì đó thân thiện hơn cho rằng sau khi xem tải web của bạn, trong webViewDidFinishLoad: .

- (void) webViewDidFinishLoad:(UIWebView *)webView 
{ 
    webView.backgroundColor = [UIColor blackColor]; 
    webView.opaque = YES; 
} 
+0

Cố gắng thực hiện điều đó trong Trình tạo giao diện KHÔNG làm việc cho tôi, vì vậy hãy ghi nhớ điều đó. Mã trên hoạt động tốt .. – phi

+1

đây là giải pháp hoàn hảo nếu bạn khởi tạo uiwebview theo chương trình. Cảm ơn – Andreas

+0

Cũng giúp thiết lập màu nền của cửa sổ trong MainWindow.xib từ trắng sang đen. – neoneye

0

Tôi chưa thể nhận xét do đó câu trả lời. @Steve, thực sự có thể thực hiện với bảng phân cảnh.

Đặt một UIView dưới UIWebView và:

// Can be set in the storyboard 
bottomView.backgroundColor = [UIColor yellowColor]; 
webview.alpha = 0; 

Hãy ghi nhớ rằng rất nhiều trang lấy những thứ sau khi được nạp qua JS vì vậy bạn vẫn có thể bị bỏ lại với một màu trắng vài trang giây sau khi

- (void) webViewDidFinishLoad:(UIWebView *)webView 
{ 
    webView.alpha = 1; 
} 
0

Để thêm vào câu trả lời của Steve Madsen (vì tôi chưa thể nhận xét). Nếu bạn đã thiết lập UIWebView trong Interface Builder, bạn sẽ không thể đặt alpha thành 0.0, nhưng những gì bạn có thể làm là mang bộ chọn màu để đặt màu nền (trắng, đen, xám, không quan trọng), sau đó đặt độ mờ của màu đó đến 0% và hoạt động.

Các vấn đề liên quan