iphone - 向类似于 Safari 和 Articles 的 UIWebView 添加标题 View

标签 iphone objective-c uiwebview uiscrollview mobile-safari

我想向 UIWebView 添加标题 View ,类似于 MobileSafari 中的地址/搜索栏和 Sophia Teutschler 的优秀 Articles.app。更准确地说,我想在 UIWebView 上方创建一个“拉动以固定方向” View ,就像在文章中一样。 Articles 确实使用了 UIWebView,所以这似乎是可能的。有没有一种方法可以实现这一点,而不必将 UIWebView 嵌入到 UIScrollView 中并始终更新其大小,如 this article 中所述?显然,我确实需要滚动事件以使“拉动以固定方向”行为相应。

最佳答案

经过几次尝试,我决定采用这个解决方案:

基本上我只是将我的标题 UIView 添加为 webview.scrollview subview 。

为了避免标题与浏览器 View 重叠:

  • 循环所有 [webview.scrollView subview ]
  • 寻找最大的,应该包含浏览器(其他的用于阴影和线条)
  • 改变原点.y

    代码如下:

    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];
    }
    

关于iphone - 向类似于 Safari 和 Articles 的 UIWebView 添加标题 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2483028/

相关文章:

objective-c - 以编程方式将 View 添加到 NSStackView 后无法正确显示

ios - 如何强制在 UIWebView 中播放的视频在 iPad 上全屏显示?

php - Swift 从网站读取 HTML 标签

iphone - UIActivityIndi​​catorView 未对齐

c# - Iphone 应用程序集成开发环境

iOS:Swift – 无法弄清楚如何在 tableView 方法中使用 indexPath

iphone - 刷新 UIScrollView/Animation,计时(Objective-C)

ios - 我需要一个可变数组,它在 IOS 中有 8 个内插字符串

ios - 为什么图像没有显示在我的 Apple Watch 应用程序中?

html - iOS UIWebView 不缩放内容