У меня есть пример проекта, в котором я создал пользовательский UIWebView с именем WebView . Они добавляются в представление в UIViewController . Два WebView инициализируются в viewDidLoad и добавляются в список массивов. Первый добавляется как подпредставление på self.view . Раскадровка содержит UIBarButton, и при нажатии на нее второй WebView добавляется как подпредставление к self.view .
- (void)viewDidLoad
{
[super viewDidLoad];
WebView *webView1 = [[WebView alloc] initWithFrame:self.view.bounds];
WebView *webView2 = [[WebView alloc] initWithFrame:self.view.bounds];
self.webViews = [NSArray arrayWithObjects: webView1, webView2, nil];
UIWebView *webView = [self.webViews objectAtIndex:0];
[self.view addSubview:webView];
[webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://m.google.com/"]]];
}
Вот реализация WebView , где панель инструментов добавляется в нижнюю часть (-50px) представления:
@implementation WebView
- (void) initToolbar {
UIToolbar *toolbar = [UIToolbar new];
toolbar.barStyle = UIBarStyleBlackTranslucent;
toolbar.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin;
[toolbar sizeToFit];
toolbar.frame = CGRectMake(0, self.frame.size.height-80, 320, 30);
[self addSubview:toolbar];
}
- (id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
if (self) {
self.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight;
[self initToolbar];
}
return self;
}
@end
Проблема в том, что панель инструментов не имеет одинакового положения в двух видах (они могут быть расположены как первый). Почему они не расположены одинаково?
Вы можете скачать небольшой пример проекта здесь:
http://uploads.demaweb.dk/UIWebView.zip
Мои заметки: Как уже упоминалось, два WebView в настоящее время инициализируются в viewDidLoad . Если я вместо этого подожду и сначала инициализирую, тогда, когда они мне понадобятся, похоже, все работает как ожидалось.