Как добавить средства управления под UIWebView

Так что до сих пор нет ответа, я просто сделал что-то похожее, хотя мой обходной путь - 100% взлом, если кто-то заходит на эту страницу, это сработало!

#nav ul li:nth-child(1) {
        z-index:10; 
    }
    #nav ul li:nth-child(2) {   
        z-index:9;  
    }
    #nav ul li:nth-child(3) {
        z-index:8;  
    }
    #nav ul li:nth-child(4) {   
        z-index:7;  
    }
    #nav ul li:nth-child(5) {
        z-index:6;  
    }
    #nav ul li:nth-child(6) {   
        z-index:5;  
    }

У меня просто было это и до тех пор, пока я не получил более 10 элементов, это, кажется, работает ...

8
задан Tom Stuart 25 July 2009 в 09:11
поделиться

2 ответа

Ни предложенные вами решения UIScrollView, ни UITableView не будут работать.

Если вы поместите UIWebView в UIScrollView, один или другой будет перехватывать прокрутки и прокручивать свою панель содержимого, но другой не буду. Я не уверен, какой будет, думаю, это будет UIScrollView. В любом случае, для UIScrollView нет возможности прокручивать, когда вы дойдете до конца прокрутки в UIWebView, или наоборот.

Если вы используете UITableView, UIWebView будет прокручиваться внутри своей ячейки, но UITableView выиграет ' t прокрутка вообще, иначе UIWebView вообще не будет прокручиваться, а UITableView будет. Если вы используете стиль «сгруппированной» таблицы, возможно, вы сможете прокрутить UIWebView и UITableView, но это не будет тем согласованным опытом, который вы ищете.

Единственный способ, который, на мой взгляд, мог бы сработать, - это возиться с внутренностями UIWebView и добавить свой UIView, содержащий кнопки и еще много чего, в объект прокрутки, используемый UIWebView. Это вне моего понимания, но эти дампы заголовков помогут вам начать работу. Имейте в виду, что если Apple заметит, что вы делаете, они могут отклонить ваше приложение, и, кроме того, внутренние компоненты могут измениться в любое время, нарушив ваш код. Если вы пойдете по этому пути, попробуйте закодировать его таким образом, чтобы отсутствие функциональности привело к постепенному сбою.

РЕДАКТИРОВАТЬ:

После некоторого обсуждения и экспериментов мы с OP пришли к выводу, что это очень возможно, и есть способ сделать это, который вообще не полагается на внутренние компоненты. То есть используйте ограничивающий вид прокрутки, и измените размер веб-представления после его загрузки до полного размера собственного представления содержимого. Этот размер можно найти с помощью [webView sizeThatFits: CGSizeZero].

Если вы действительно хотите использовать для этого частные лица UIWebView, у меня есть короткий пример кода добавления представления в представление документа UIWebView, поскольку я все равно все уладил :)

- (void)applicationDidFinishLaunching:(UIApplication *)application {    

    // Override point for customization after app launch 
    UIView* testView = [[[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)] autorelease];
    UIWebView* testWebView = [[[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)] autorelease];
    [testView addSubview:testWebView];
    [testWebView setDelegate:self];
    [testWebView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://google.com"]]];



    [window addSubview:testView];
    [window makeKeyAndVisible];
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
    UIView *insert = [[[UIView alloc] initWithFrame:CGRectMake(0, [[webView _documentView] frame].size.height, 320, 40)] autorelease];
    [insert setBackgroundColor:[UIColor greenColor]];
    [[webView _documentView] addSubview:insert];
}
8
ответ дан 5 December 2019 в 19:02
поделиться

Я не верю, что есть какой-либо способ сделать это в рамках ограничений общедоступного SDK.

1
ответ дан 5 December 2019 в 19:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: