Я решил использовать UIWebView, чтобы я мог управлять макетом текста, который содержится в локальном HTML-документе в моем комплекте. Я хочу, чтобы текст отображался в UIWebView, который содержится в моем представлении. Таким образом, текст - это не весь вид, а лишь его часть.
Все работает нормально, но при загрузке веб-страницы у меня появляется пустой экран за секунду до появления текста. Это выглядит очень плохо. Кто-нибудь может дать мне пример, как это остановить? Я предполагаю, что мне нужно как-то скрыть веб-представление, пока оно не загрузится полностью? Может кто-нибудь сказать мне, как это сделать?
В данный момент я вызываю свой код через viewDidLoad так:
[myUIWebView loadRequest: [NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"localwebpage" ofType:@"html"] isDirectory:NO]]];
Любая помощь очень ценится. Я прочитал несколько форумов и не нашел хорошего ответа на этот вопрос, и кажется, что он часто повторяется как проблема для начинающих, как я.
Спасибо, что нашли время, чтобы прочитать этот пост!
ОБНОВЛЕННАЯ информация
Спасибо за ваш ответ. Приведенные ниже рекомендации решают проблему, но создают новую для меня, поскольку теперь, когда мое представление загружается, оно полностью скрыто, пока я не нажму на тумблер. чтобы понять это, возможно, будет очень полезно, если я выложу весь свой код. Перед этим, однако, позвольте мне объяснить настройку моего взгляда. У меня есть стандартное представление, в котором у меня также есть два веб-представления, одно поверх другого. Каждый веб-вид содержит различный текст с разным стилем. пользователь переключается между представлениями с помощью тумблера, который скрывает / показывает веб-представления. Я использую веб-представления, потому что я хочу контролировать стиль / макет текста. Ниже приведен мой полный .m-код, я не могу понять, в чем дело. Мои веб-представления называются «Оксфорд и Гарвард». Я уверен, что это как-то связано с тем, как / когда я скрываю / открываю взгляды. Я играл с этим, но не могу понять, как это правильно. Может быть, мой подход неверен. Небольшой совет, который бы сгладил это, был бы очень признателен:
@implementation ReferenceViewController
@synthesize oxford;
@synthesize harvard;
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
[super viewDidLoad];
[oxford loadRequest: [NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"Oxford" ofType:@"html"] isDirectory:NO]]];
[harvard loadRequest: [NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:@"Harvard" ofType:@"html"] isDirectory:NO]]];
[oxford setHidden:YES];
[harvard setHidden:YES];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
if([webView hidden]) {
[oxford setHidden:NO];
[harvard setHidden:NO];
}
}
//Toggle controls for toggle switch in UIView to swap between webviews
- (IBAction)toggleControls:(id)sender {
if ([sender selectedSegmentIndex] == kSwitchesSegmentIndex)
{
oxford.hidden = NO;
harvard.hidden = YES;
}
else
{
oxford.hidden = YES;
harvard.hidden = NO;
}
}
- (void)didReceiveMemoryWarning {
// Releases the view if it doesn't have a superview.
[super didReceiveMemoryWarning];
// Release any cached data, images, etc that aren't in use.
}
- (void)viewDidUnload {
[super viewDidUnload];
// Release any retained subviews of the main view.
// e.g. self.myOutlet = nil;
}
- (void)dealloc {
[super dealloc];
[oxford release];
[harvard release];
}
@end