猫猫学iOS(四十七)之网易彩票帮助界面UIWebView的运用

2024-09-05 07:38

本文主要是介绍猫猫学iOS(四十七)之网易彩票帮助界面UIWebView的运用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

猫猫分享,必须精品

原创文章,欢迎转载。转载请注明:翟乃玉的博客
地址:http://blog.csdn.net/u013357243?viewmode=contents

效果:

这里写图片描述

制作过程

首先是帮助按钮那个地方的点击。
这里写图片描述

这里是用点击跳转的用的是 NJSettingArrowItem,前面的设置的,从字典通过模型转过来的。

  // 分享NJSettingArrowItem *share = [[NJSettingArrowItem alloc ]initWithIcon:@"MoreShare" title:@"分享" destClass:[NJShareViewController class]];

帮助界面

帮助界面其实是一个tableView,然后字典转模型,运用模型helps来设置cell

这里写图片描述

代码:


@interface NJHelpViewController ()
/***   保存所有的json对象*/
@property (nonatomic, strong) NSArray *helps;
@end@implementation NJHelpViewController#pragma mark - 懒加载
- (NSArray *)helps
{if (_helps == nil) {NSString *path = [[NSBundle mainBundle] pathForResource:@"help.json" ofType:nil];NSData *data = [NSData dataWithContentsOfFile:path];NSArray *dictArray = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:NULL];NSMutableArray *models = [[NSMutableArray alloc] initWithCapacity:dictArray.count];for (NSDictionary *dict in dictArray) {NJHelp *help = [NJHelp helpWithDict:dict];[models addObject:help];}_helps = models;}return  _helps;
}- (void)viewDidLoad
{[super viewDidLoad];// 定义数组保存创建好的item模型NSMutableArray *items = [NSMutableArray arrayWithCapacity:self.helps.count];// 根据我们通过json创建的对象创建itemfor (NJHelp *help  in self.helps) {NJSettingItem *item = [[NJSettingArrowItem alloc]initWithIcon:nil title:help.title destClass:nil];[items addObject:item];}// 创建分组NJSettingGroup *group = [[NJSettingGroup alloc] init];// 将所有的item赋值给分组itemsgroup.items = items;[self.datas addObject:group];}// 条目点击事件
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{// 1.创建目标控制器NJHtmlViewController *htmlVc = [[NJHtmlViewController alloc] init];// 1.2传递要显示的html的名称
//    htmlVc.html = [self.helps[indexPath.row] html];htmlVc.helpModel = self.helps[indexPath.row];UINavigationController *nav = [[UINavigationController alloc] initWithRootViewController:htmlVc];// 2.以模态的形式展示目标控制器[self presentViewController:nav animated:YES completion:^{}];
}@end

进入时展示的内容

这里写图片描述
这里其实是根据上一步的点击事件

条目点击事件
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

来确定用哪一个html网页文件。

点击条目跳转 到固定问题

这里用到了javascript的一点小代码,当点击时候自己跳转

网页加载完毕之后调用这个代码其中self.helpModel.tagId是我们定义的模型中的id,也就是想要跳转到得标签的id。

//设置代理
webView.delegate = self;
#pragma mark - UIWebViewDelegate
// 网页加载完毕之后调用
- (void)webViewDidFinishLoad:(UIWebView *)webView
{
//    NSLog(@"webViewDidFinishLoad");// 当网页加载完毕之后执行javascript代码,跳转到对应的位置// 1.生成对应的javascript代码NSString *jsStr = [NSString stringWithFormat:@"window.location.href = '#%@';", self.helpModel.tagId];[webView stringByEvaluatingJavaScriptFromString:jsStr];
}

设置标题和关闭按钮

这里写图片描述

// -1 设置标题self.title = self.helpModel.title;// 0. 添加关闭按钮self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithTitle:@"关闭" style:UIBarButtonItemStylePlain target:self action:@selector(closeVc)];

UIWebView的使用

self.helpModel是我们自己的模型
而使用UIWebView主要就是这几部了

1.获得网页的全路径:

 NSString *path = [[NSBundle mainBundle] pathForResource:(NSString *) ofType:(NSString *)]  

2.根据全路径创建url:

NSString *path = [[NSBundle mainBundle] pathForResource:(NSString *) ofType:(NSString *)]

3.根据url创建request :

NSURLRequest *request = [[NSURLRequest alloc] initWithURL:(NSURL *)];

4.加载本地的网页 :

 [webView loadRequest:(NSURLRequest *)];
    // 利用自定义的webview加载网页UIWebView *webView = (UIWebView *)self.view;// 1.获得网页的全路径NSString *path = [[NSBundle mainBundle] pathForResource:self.helpModel.html ofType:nil];// 2.根据全路径创建urlNSURL *url = [[NSURL alloc] initFileURLWithPath:path];// 3.根据url创建requestNSURLRequest *request = [[NSURLRequest alloc] initWithURL:url];// 4.加载本地的网页[webView loadRequest:request];

这篇关于猫猫学iOS(四十七)之网易彩票帮助界面UIWebView的运用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1138345

相关文章

Swagger在java中的运用及常见问题解决

《Swagger在java中的运用及常见问题解决》Swagger插件是一款深受Java开发者喜爱的工具,它在前后端分离的开发模式下发挥着重要作用,:本文主要介绍Swagger在java中的运用及常... 目录前言1. Swagger 的主要功能1.1 交互式 API 文档1.2 客户端 SDK 生成1.3

VS配置好Qt环境之后但无法打开ui界面的问题解决

《VS配置好Qt环境之后但无法打开ui界面的问题解决》本文主要介绍了VS配置好Qt环境之后但无法打开ui界面的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目UKeLvb录找到Qt安装目录中designer.UKeLvBexe的路径找到vs中的解决方案资源

CSS引入方式和选择符的讲解和运用小结

《CSS引入方式和选择符的讲解和运用小结》CSS即层叠样式表,是一种用于描述网页文档(如HTML或XML)外观和格式的样式表语言,它主要用于将网页内容的呈现(外观)和结构(内容)分离,从而实现... 目录一、前言二、css 是什么三、CSS 引入方式1、行内样式2、内部样式表3、链入外部样式表四、CSS 选

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I

Python itertools中accumulate函数用法及使用运用详细讲解

《Pythonitertools中accumulate函数用法及使用运用详细讲解》:本文主要介绍Python的itertools库中的accumulate函数,该函数可以计算累积和或通过指定函数... 目录1.1前言:1.2定义:1.3衍生用法:1.3Leetcode的实际运用:总结 1.1前言:本文将详

Python中的可视化设计与UI界面实现

《Python中的可视化设计与UI界面实现》本文介绍了如何使用Python创建用户界面(UI),包括使用Tkinter、PyQt、Kivy等库进行基本窗口、动态图表和动画效果的实现,通过示例代码,展示... 目录从像素到界面:python带你玩转UI设计示例:使用Tkinter创建一个简单的窗口绘图魔法:用

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

安卓链接正常显示,ios#符被转义%23导致链接访问404

原因分析: url中含有特殊字符 中文未编码 都有可能导致URL转换失败,所以需要对url编码处理  如下: guard let allowUrl = webUrl.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed) else {return} 后面发现当url中有#号时,会被误伤转义为%23,导致链接无法访问

poj 2431 poj 3253 优先队列的运用

poj 2431: 题意: 一条路起点为0, 终点为l。 卡车初始时在0点,并且有p升油,假设油箱无限大。 给n个加油站,每个加油站距离终点 l 距离为 x[i],可以加的油量为fuel[i]。 问最少加几次油可以到达终点,若不能到达,输出-1。 解析: 《挑战程序设计竞赛》: “在卡车开往终点的途中,只有在加油站才可以加油。但是,如果认为“在到达加油站i时,就获得了一

【iOS】MVC模式

MVC模式 MVC模式MVC模式demo MVC模式 MVC模式全称为model(模型)view(视图)controller(控制器),他分为三个不同的层分别负责不同的职责。 View:该层用于存放视图,该层中我们可以对页面及控件进行布局。Model:模型一般都拥有很好的可复用性,在该层中,我们可以统一管理一些数据。Controlller:该层充当一个CPU的功能,即该应用程序