Adding a header view to a UIWebView similar to Safari and Articles

前端 未结 7 1912
耶瑟儿~
耶瑟儿~ 2020-12-07 19:17

I\'d like to add a header view to an UIWebView similar to the address/search bar in MobileSafari and the excellent Articles.app by Sophia Teutschler. More preci

7条回答
  •  忘掉有多难
    2020-12-07 20:05

    After several attemps, I've decided to go with this solution:

    Basically I've just added my header UIView as a webview.scrollview subview.

    To avoid having the header overlap the browser view:

    • cycle through all [webview.scrollView subviews]
    • look for the biggest, wich should contains the browser (the others are for shadows and lines)
    • change its origin.y

      here's the code:

      CGRect browserCanvas = web.bounds;
      for(int i=0; i< [[web.scrollView subviews] count]; i++)
      {
        UIView* subview = [[web.scrollView subviews] objectAtIndex:i];
        CGRect f = subview.frame;
        NSLog(@"sub %d -> x:%.0f, y:%.0f, w:%.0f, h:%.0f", i, f.origin.x, f.origin.y, f.size.width, f.size.height);
      
        if(f.origin.x == browserCanvas.origin.x && 
           f.origin.y == browserCanvas.origin.y && 
           f.size.width == browserCanvas.size.width && 
           f.size.height == browserCanvas.size.height)
           {
               f.origin.y = header.frame.size.height;
               subview.frame = f;
           }
      }
      
      if(![header superview])
      {
        [web.scrollView addSubview:header];
        [web.scrollView bringSubviewToFront:header];
      }
      

提交回复
热议问题