zoukankan      html  css  js  c++  java
  • UIVIEW与控件(UIWebView, UIScrollView,UIActivityIndicatorView,UIProgressView)

    1.网页控件 WebView

      1.1 UIKit中的UIWebView类能够味用户提供显示多行文本的视图,可以使用Web等技术进行显示HTML、解析CSS和执行JavaScript等操作。UIWebView的内核是开源的WebKit浏览器引擎。

      WebView控件可以加载本地HTML代码或者网络资源。

      本地资源的加载采用同步方式,数据可以来源于本地文件或者是硬编码的HTML字符串。

      loadHTMLString:baseURL:设定主页文件的基本路径,通过一个HTML字符串加载主页数据。

      loadData:MIMEType:textEncodingName:basseURL:指定MIME类型,编码集和NSData对象加载一个主页数据,并设定主页文件基本路径。

      使用者两个方法时,需要注意字符集问题,而采用什么样的字符集取决于HTML文件。

      加载网络资源时,采用一步加载方式,使用的方法是loadRequest:(NSURLRequest *)request,该方法要求提供一个NSURLRequest对象,该对象在构建的适合必须严格遵守某种协议,例如:

      http://www.sina.com.cn,HTTP协议;

      file://localhost/Users/tonyguan/../index.html,文件传输协议;

      其中http://和file://是协议名,不能省略。

      由于采用异步请求加载WebView,所以还要实现相应地UIWebViewDelegate委托协议,通过实现UIWebViewDelegate协议响应WebView在加载的不同阶段的事件。

      这两个方法用于加载本地资源文件index.html,并将其显示在WebView上,在testLoadHTMLString: 方法中,通过NSString的initWithContentOfFile:encoding:error:方法将index.html文件的内容读取到NSString对象中。在self.webView loadHTMLString:html baseURL:bundleUrl语句中,baseURL参数用于设定主页文件的基本路径,即index.html所在的资源目录,这个可以用 NSURL    fileURLWithPath:[[NSBundle mainBundle] bundlePath]语句来获取。

    document.body.innerHTML获得页面中的HTML代码的JavaScript语句

    UIWebViewDelegate委托协议定义的方法:

    • webView:shouldStartLoadWithRequest:navigationType:。该方法在WebView开始加载新的界面之前调用,可以用来捕获WebView中的JaveScript事件。
    • webViewDidStartLoad:。该方法在WebView开始加载新的界面之后调用。
    • webViewDidFinishLoad:。改方法在WebView完成加载新的界面之后调用。
    • webView:didFailLoadWithError:。该方法在WebView加载失败时调用。

    1.2 使用WebView构建Hybird应用

      Hybird应用同时融合了本地技术和Web技术,它能够同时发挥本地技术和Web技术各自的优势。纯Web技术的应用虽然禁止在App Store中发布,但Hybrid确可以获得发布许可。有一个Hybird框架--PhoneGap(http://phonegap.com/)用于移动平台的开发,PhoneGap现在被Adobe收购了,提供13个调用本地的API,采用的是JavaScript、CSS3和HTML5等Web技术。PhoneGap的核心原理是:本地代码调用JavaScript;JavaScript调用本地代码。WebView是实现Hybird应用的核心,也是实现本地技术和Web技术融合的核心。

      在Xcode工程中,文件夹和组的颜色是不同的,文件夹是灰色的,组是黄色的;在使用过程中,文件夹和组也是有本质区别的,如果将文件放入到文件夹中,则反问文件的路径是“文件夹/index.html",而如果将文件放入到组中,访问的路径是”index.html"

    2 屏幕滚动控件 ScrollView

      scrollView在UIKit中是UIScrollView类,是容器类型的视图,它有两个子类:UITextView和UITableView

      2.1 scrollView属性的设置:contentSize,contentInset和contentOffset。

        contentSize:ScrollView内容视图的大小,CGSize结构体类型,包含width和height两成员 

        contentInset:用于在ScrollView中的内容视图周围添加边框,这往往为了留出空白以放置工具栏、标签栏或导航栏。contentInset属性有4个分量,分别是top,buttom,left,right,分别代表顶边距离,底边距离,左边距离和右边距离

        contentOffset:内容视图坐标原点与scrollView坐标原点的偏移量,返回CGPoint结构体类型,包含x和y两个成员

    3 键盘与其他控件的协同

      显示键盘时会遮挡一些控件,需要在键盘打开前后,摆放好ScrollView和控件的位置

    4 等待相关的控件和进度条

      在请求完成前,经常会用到活动指示器ActivityIndicatorView和进度条ProgressView,其中活动指示器可以消除用户的心理等待时间,而进度条可以指示请求的进度

      4.1 活动指示器ActivityIndicateView

    使用一个按钮,通过点击实现活动指示器的旋转和停止

    4.2 进度条ProgressView

      引入定时器(NSTimer),方便任务进度的显示

    NSTimer的类方法+(NSTimer *)scheduledTimerWithInterval:(NSTimeInterval)seconds  target:(id)target  

              selector:(SEL)aSelector  userInfo:(id)userInfo  repeats:(BOOL)repeats,

    target用于指定发送消息给哪个对象,aSelector指定要调用的方法名,相当于一个函数指针,userInfo可以给消息发送参数,repeats表示重复与否

  • 相关阅读:
    c++(基数排序)
    halcon算子翻译——gen_measure_arc
    halcon算子翻译——fuzzy_measure_pos
    Halcon算子翻译——fuzzy_measure_pairs
    halcon算子翻译——fuzzy_measure_pairing
    halcon算子翻译——deserialize_measure
    Halcon算子翻译——close_measure
    Halcon算子翻译——dev_update_windowg
    Halcon算子翻译——dev_update_var
    Halcon算子翻译——dev_unmap_var
  • 原文地址:https://www.cnblogs.com/PJXWang/p/5054160.html
Copyright © 2011-2022 走看看