`
zl4393753
  • 浏览: 340230 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

UIWebView AddressBar Scroll

 
阅读更多
BrowserView.h
#import <UIKit/UIKit.h>

@interface BrowserView : UIView <UIWebViewDelegate, UIScrollViewDelegate> {

  UINavigationBar *addressBar_;

  UIWebView *webView_;

}

@property (nonatomic, readonly) UINavigationBar *addressBar;

@property (nonatomic, readonly) UIWebView *webView;

@end


BrowserView.m
#import ”BrowserView.h”

@interface BrowserView(Private)

- (void)clearAddressBar;

- (void)clearWebView;

@end

#define kHeightOfAddressBar 52.0f

@implementation BrowserView

@synthesize addressBar = addressBar_;

@synthesize webView = webView_;

#pragma mark - Initialize

- (id)initWithFrame:(CGRect)frame

{

  self = [super initWithFrame:frame];

  if (self) {

    [self clearAddressBar];

    CGRect frameOfAddressBar = CGRectMake(0, -kHeightOfAddressBar, self.frame.size.width, kHeightOfAddressBar);

    addressBar_ = [[UINavigationBar alloc] initWithFrame:frameOfAddressBar];

    addressBar_.autoresizingMask = (UIViewAutoresizingFlexibleWidth);

    [self clearWebView];

    webView_ = [[UIWebView alloc] initWithFrame:self.bounds];

    webView_.delegate = self;

    webView_.autoresizingMask = (UIViewAutoresizingFlexibleWidth|UIViewAutoresizingFlexibleHeight);

    for (id subview in webView_.subviews) {

      if ([subview isKindOfClass:[UIScrollView class]]) {

        UIScrollView *scrollView = (UIScrollView *)subview;

        scrollView.delegate = self;

        scrollView.contentInset = UIEdgeInsetsMake(frameOfAddressBar.size.height, 0, 0, 0);

        [scrollView setContentOffset:CGPointMake(0, frameOfAddressBar.origin.y) animated:NO];

        [scrollView addSubview:addressBar_];

      }

    }

    [webView_ loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@”http://www.google.com”]]];

    [self addSubview:webView_];

  }

  return self;

}

#pragma mark - Memory management

- (void)dealloc

{

  [self clearAddressBar];

  [self clearWebView];

  [super dealloc];

}

#pragma mark - Address Bar

- (void)clearAddressBar

{

  [addressBar_ release], addressBar_ = nil;

}

#pragma mark - Web view

- (void)clearWebView

{

  if (webView_ != nil) {

    webView_.delegate = nil;

  }

  [webView_ release], webView_ = nil;

}

#pragma mark - Web view delegate

- (void)webViewDidFinishLoad:(UIWebView *)webView

{

  for (id subview in webView.subviews) {

    if ([subview isKindOfClass:[UIScrollView class]]) {

      UIScrollView *scrollView = (UIScrollView *)subview;

      [scrollView setContentOffset:CGPointMake(0, 0) animated:YES];

    }

  }

}

#pragma mark - Scroll view delegate

- (void)scrollViewDidScroll:(UIScrollView *)scrollView

{

  if (scrollView.contentOffset.y < 0) {

    UIEdgeInsets insects = scrollView.scrollIndicatorInsets;

    insects.top = -scrollView.contentOffset.y;

    scrollView.scrollIndicatorInsets = insects;

  }

}

@end
分享到:
评论

相关推荐

    UIWebViewDemo

    **UIWebViewDemo** 是一个基于iOS开发的示例项目,主要展示了如何在应用程序中使用`UIWebView`组件来加载和展示网页内容。`UIWebView`是Apple提供的原生控件,它允许iOS开发者在应用内嵌入网页浏览功能,使得用户...

    iPhone开发之UIWebView示例程序

    在iOS应用开发中,UIWebView是一个非常重要的组件,它允许开发者在应用程序内嵌入网页内容,实现网页浏览功能。这个示例程序是针对iPhone平台,旨在帮助开发者理解如何有效地使用UIWebView来展示网页数据。通过这个...

    UIWebView和js交互

    在iOS开发中,UIWebView是苹果提供的一种原生控件,用于展示网页内容。它可以加载HTML、CSS和JavaScript代码,并且支持与JavaScript进行交互,从而实现原生应用和Web内容的融合。本教程将深入探讨UIWebView与...

    IOS UIWebView Demo

    【标题】:“IOS UIWebView Demo”是一个iOS应用开发中的实例,它主要展示了如何在iOS应用中集成和使用UIWebView组件来加载和展示网页内容。UIWebView是Apple iOS SDK提供的一种原生控件,用于在iOS应用程序内部显示...

    UIWebView+html+css

    在iOS开发中,UIWebView是苹果提供的一种原生控件,用于展示网页内容。这个话题“UIWebView+html+css”主要关注如何在UIWebView中嵌入HTML和CSS,实现可点击的链接以及显示动态的GIF动画效果。下面将详细讲解这个...

    UIWebView的使用

    在iOS开发中,UIWebView是苹果提供的一种非常重要的组件,它允许开发者在应用程序内部嵌入网页内容,实现类似浏览器的功能。这个"UIWebView的使用"示例是一个基础的学习项目,旨在帮助开发者理解如何通过UIWebView...

    UIWebView的使用代码

    之前提到UIWebView使用一个UIScrollView对象来关联web页面的内容,通过UIWebView的scrollView属性即可获得该对象,默认情况下网页长度超出设备视口长度后页面会滚动,用户使用手指滚动页面到页面边距并放开手指后...

    UIWebView和js交互demo1

    在iOS开发中,UIWebView是苹果提供的一种原生控件,用于展示网页内容。它可以加载HTML、CSS和JavaScript代码,并且具有与Objective-C(OC)代码进行交互的能力。本项目"UIWebView和js交互demo1"就是展示了如何利用...

    UIWebView使用

    在iOS开发中,UIWebView是苹果提供的一种非常重要的组件,用于在原生应用中嵌入网页内容。这个组件使得开发者可以展示HTML、CSS和JavaScript编写的网页,甚至与应用程序进行交互,实现一定的混合开发模式。以下是对...

    Cocos2dx中UIWebView替换为WKWebView

    然而,随着Apple对App Store审核政策的调整,使用UIWebView的App将不再被接受,因为Apple已经将其列为弃用API。在2020年,Apple明确表示,自2020年12月起,所有新提交的App和更新都必须移除UIWebView的使用,转而...

    网页视图 UIWebView

    在本文中,我们将深入探讨UIWebView的基本使用,包括网络资源地址字符串的处理以及UIWebView的属性和协议的综合应用。 首先,让我们了解一下**UIWebView的基本使用**。创建一个UIWebView实例很简单,只需要在代码中...

    UIWebView与 javascript的交互

    在iOS开发中,UIWebView是苹果提供的一种原生控件,用于在应用内展示网页内容。这个"UIWebView与javascript的交互"的标题暗示了我们正在探讨如何在iOS应用中利用UIWebView与嵌入的HTML页面进行双向通信,即通过...

    UIWebView原生与H5交互

    在iOS开发中,UIWebView是苹果提供的一种组件,用于在应用程序中展示网页内容。它不仅可以加载HTML页面,还可以执行JavaScript代码,甚至与原生代码进行交互。这种交互性使得开发者可以利用HTML、CSS和JavaScript的...

    UIWebView Demo代码

    在iOS开发中,UIWebView是苹果提供的一种原生控件,用于在应用程序内展示网页内容。这个"UIWebView Demo代码"示例旨在帮助开发者理解如何使用UIWebView来加载和交互网页。下面我们将深入探讨UIWebView的主要功能、...

    UIWebView加载html

    在iOS开发中,UIWebView是苹果提供的一种用于在应用程序中展示网页内容的组件。这篇博客“UIWebView加载html”很可能是讨论如何利用UIWebView来加载并显示HTML代码,这对于构建混合式应用或者需要在App内嵌入网页...

    Demo.zip_DEMO_iphone_uiwebview_uiwebview demo_uiwebview video

    "Demo.zip_DEMO_iphone_uiwebview_uiwebview demo_uiwebview video"这个标题暗示了我们正在讨论的是一个关于在iPhone应用中使用UIWebView播放视频的示例项目。 UIWebView是Apple提供的一个类,它是UIKit框架的一...

    UIWebView与JS交互小例子

    在iOS开发中,UIWebView是苹果提供的一种原生控件,用于展示网页内容。它可以加载HTML、CSS和JavaScript代码,并且支持与Objective-C代码进行交互,实现App与Web页面的深度融合。本示例将深入探讨如何通过UIWebView...

    UIWebView中加载本地图片

    在iOS开发中,UIWebView是苹果提供的一种用于在应用程序中展示网页内容的组件。它可以加载远程HTML内容,也可以处理本地的HTML文件。然而,当我们要在UIWebView中加载本地图片时,就需要对这个过程做一些特别的处理...

    (OC)(UIWebView)新闻详情.zip

    标题"(OC)(UIWebView)新闻详情.zip"表明这是一个关于Objective-C(简称OC)编程语言中,使用UIWebView控件来实现新闻详情展示的项目或代码示例。UIWebView是iOS开发中常见的一种组件,它允许开发者在应用内加载网页...

Global site tag (gtag.js) - Google Analytics