UITableView、UIWebView的一点总结
来源:互联网 发布:会计网络培训学校 编辑:程序博客网 时间:2024/06/05 10:30
前个星期,完成了老师布置的一个小项目,是通过解析xml文件来读取新浪新闻。
程序主要用到UINavigationController、UITabbarController、UITableViewController以及UIWebViewController。其中填在UINavigationController的目的呢,主要是可以让他为我产生一个标题栏,在以后需要对程序进行扩展的时候,也比较方便,之后主要的界面就是Tabbar里面嵌入TableView。因为我要读取四类新闻,所以就用一个UITabbarController,其中呢,每一个item都指向一个UITableViewController。之后四个UITableViewController的Cell都指向同一个UIWebView.
这就是我这个程序界面的构成了。storyboard的图片下一次补上,宿舍没有iMac
下面讲讲程序的一些主要的代码:
因为这个程序的主体是UITableViewController,所以重点是讲它,我挑显示体育新闻的这个TableView来说,首先当然需要创建一个类来关联这个UITableViewController,自己创建的这个类,要继承于UITableViewController,接下来,很重要的一点是要在storyboard中,选中UItableViewController的Cell,然后给它的Identifier一个自己定义的标识。UITableView中有2个重要的DataSource的函数,
#pragma mark - sportNewsTableViewControllerDataSource- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return ([self.newsPubdate count]-2);}- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *CellIdentifier = @"sportsNewsCell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; } // Configure the cell... NSString *title = [self.newsTitle objectAtIndex:indexPath.row+2];NSString *pubdate = [self.newsPubdate objectAtIndex:indexPath.row+1]; cell.textLabel.text = title; cell.detailTextLabel.text = pubdate; return cell;}
第一个是返回用多少行,第二个是设置每一行。
还有一个函数是返回有多少section,因为默认的是1,而我的程序也只需要是1就可以了,所以那个函数我就直接删掉了,没实现。
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
中,重要的参数就是indexPath,该参数有1个重要的property ,row 就是当前操作的是那一行,通过这个参数,我们才可以设置相应每一行的数据。
UITableView的delegate还有一个重要的函数
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath,
就是当某一行被选中时,需要做一些什么响应,因为我这次的程序是用segue,所以这个函数我不需要。
下面就说说segue,我是通过当某一行被选中的时,就转到一个UIWebView,去显示新闻的详细内容。因为我需要传一些参数过去给UIWebView,所以需要在我的UITableViewController中实现下面这个函数
#pragma mark - segue-(void) prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ //do someting for the news content if([segue.identifier isEqualToString:@"sportNews"]) { NSMutableString *str = [[NSMutableString alloc] init]; [str appendString:[self.newsLink objectAtIndex:self.tableView.indexPathForSelectedRow.row+2]]; [str deleteCharactersInRange:NSMakeRange(0, 4)]; [segue.destinationViewController setWebURL:str]; [segue.destinationViewController setNewsTitle:@"体育新闻"]; }}这个又有一个很重要的细节,就是在创建完一个segue之后,同样要给它命名。
在这个函数里面,我主要是穿了被选中的那一个新闻的链接以及新闻的标题过去给UIWebView,所以在UIWebViewController中,也需要有相应的属性来装。
//// newsWebViewController.h// myNewsApplication//// Created by mac11 on 12-3-22.// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.//#import <UIKit/UIKit.h>@interface newsWebViewController : UIViewController @property (nonatomic,strong) NSString *webURL;@property (nonatomic,strong) NSString *newsTitle;@property (nonatomic,weak) IBOutlet UIWebView *webView;@end
//// newsWebViewController.m// myNewsApplication//// Created by mac11 on 12-3-22.// Copyright (c) 2012年 __MyCompanyName__. All rights reserved.//#import "newsWebViewController.h"@implementation newsWebViewController@synthesize webView = _webView;@synthesize webURL = _webURL;@synthesize newsTitle = _newsTitle;-(void)viewDidLoad{ [super viewDidLoad]; self.webView.scalesPageToFit = YES; NSString *newWebURL = [NSString stringWithString:self.webURL]; [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:newWebURL]]]; self.navigationItem.title = self.newsTitle;}- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation{ return YES;}- (void)viewDidUnload { [super viewDidUnload];}@end
上面就是UIWebViewController的文件的代码,很简单的代码,就是显示一个网页。
需要注意的一个细节是,我是将一个webView直接拖到一个ViewController上的,所以需要创建IBOutlet来关联webView.
好了,说了这么多,程序最重要的地方还没说,就是怎么获取新浪新闻的内容。
这个内容请看下一篇文章NSXMLParser解析xml文件
- UITableView、UIWebView的一点总结
- UIWebView 的一点理解
- UITableView和UITableViewCell的一点使用小总结
- iphone UITableView及UIWebView的使用
- iphone UITableView及UIWebView的使用
- 针对UITableView的一点补充
- UIWebView的使用总结
- UIWebView的一些总结
- UIWebView的使用总结
- UIWebView的使用总结
- UIWebView 的知识总结
- IOS-UIWebView 加入 UITableView
- iOS UITableView、UICollectionView、UIWebView
- UIWebView和PhoneGap的总结
- UIWebView的一些用法总结
- UIWebView的一些用法总结
- UIWebView的一些用法总结
- 有关UIWebView的SSL总结
- Mer系统兼容Android系统(二)
- kruskal_poj 3522 Slim Span
- ubuntu11.1的root默认密码问题
- 编程之美--求最大的k个数
- 使用脚本使一个form可以有多个普通按钮
- UITableView、UIWebView的一点总结
- TCP_NODELAY和TCP_CORK
- struts2如何取得数据库中的数据并且传到页面
- MySQL的复制原理及配置
- Android 进程间通信 Intent机制 隐式启动Activity
- c++stl库list简单的实现
- 直接访问Google网页而不是重定向到google.com.hk
- hibernate实体属性为布尔类型时命名应注意的地方
- 写科技论文的一些感想与建议