当前位置: 编程技术>移动开发
本页文章导读:
▪小谈数组的初始化有关问题 小谈数组的初始化问题
part1(应用举例)int[] abc=new int[5]; abc={1,2,3,4,5};报错:Array constants can only be used in initializers.正确的格式为int[] abc={1,2,3,4,5};这叫做数组的静态初始化那么,如果我想在初.........
▪ “返回顶端”按钮实现 “回到顶端”按钮实现
<html>
<head>
<title>“回到顶端”按钮实现</title>
<script type="text/javascript" src="/js/jquery/jquery-1.8.1.min.js"></script>
<script type="text/javascript"&.........
▪ 应用EGORefreshTableHeaderView实现下拉刷新 使用EGORefreshTableHeaderView实现下拉刷新
在使用下拉刷新类库EGORefreshTableHeaderView的时候,将资源文件添加到工程中,也不要忘记添加QuartzCore.framework框架。
我们用到一个EGOT.........
[1]小谈数组的初始化有关问题
来源: 互联网 发布时间: 2014-02-18
小谈数组的初始化问题
part1(应用举例)
int[] abc=new int[5];
abc={1,2,3,4,5};
报错:Array constants can only be used in initializers.
正确的格式为
int[] abc={1,2,3,4,5};
这叫做数组的静态初始化
那么,如果我想在初始化时标明数组的长度,应该怎么做呢?
int[] abc=new int[5];
abc[0]=1;
abc[1]=2;
abc[2]=3;
abc[3]=4;
abc[4]=5;
System.out.println(abc[2]);
这个时候,系统并没有报错,并且将正确的数值输出。
这叫做数组的动态初始化。
part2(格式罗列)
数组的使用,必须经过声明数组和分配内存给数组两个步骤,这两个步骤的语法结构如下:
//声明一维数组
数据类型 数组名[]=null;
或者
数据类型[] 数组名=null;
//分配内存给数组
数组名=new 数据类型[长度];
在应用中,常常会在声明数组的同时分配内存:
数据类型 数组名[]=new 数据类型[长度];
part3(解决问题)
LinkNode[] nng=new LinkNode[object.length];
nng[i].data=object[i];
nng[i-1].next=nng[i];
此时系统会报空指针错误。
如果在上述代码中加入nng[i]=new LinkNode();变成
LinkNode[] nng=new LinkNode[object.length];
nng[i]=new LinkNode();
nng[i].data=object[i];
nng[i-1].next=nng[i];
程序则会成功运行。
part1(应用举例)
int[] abc=new int[5];
abc={1,2,3,4,5};
报错:Array constants can only be used in initializers.
正确的格式为
int[] abc={1,2,3,4,5};
这叫做数组的静态初始化
那么,如果我想在初始化时标明数组的长度,应该怎么做呢?
int[] abc=new int[5];
abc[0]=1;
abc[1]=2;
abc[2]=3;
abc[3]=4;
abc[4]=5;
System.out.println(abc[2]);
这个时候,系统并没有报错,并且将正确的数值输出。
这叫做数组的动态初始化。
part2(格式罗列)
数组的使用,必须经过声明数组和分配内存给数组两个步骤,这两个步骤的语法结构如下:
//声明一维数组
数据类型 数组名[]=null;
或者
数据类型[] 数组名=null;
//分配内存给数组
数组名=new 数据类型[长度];
在应用中,常常会在声明数组的同时分配内存:
数据类型 数组名[]=new 数据类型[长度];
part3(解决问题)
LinkNode[] nng=new LinkNode[object.length];
nng[i].data=object[i];
nng[i-1].next=nng[i];
此时系统会报空指针错误。
如果在上述代码中加入nng[i]=new LinkNode();变成
LinkNode[] nng=new LinkNode[object.length];
nng[i]=new LinkNode();
nng[i].data=object[i];
nng[i-1].next=nng[i];
程序则会成功运行。
[2] “返回顶端”按钮实现
来源: 互联网 发布时间: 2014-02-18
“回到顶端”按钮实现
<html>
<head>
<title>“回到顶端”按钮实现</title>
<script type="text/javascript" src="/js/jquery/jquery-1.8.1.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$(window).scroll(function() {
if ($(this).scrollTop() > 15) {
$('.back-to-top').fadeIn(100);
} else {
$('.back-to-top').fadeOut(100);
}
});
// jQuery实现动画滚动
$('.back-to-top').click(function(event) {
event.preventDefault();
$('html, body').animate({scrollTop: 0}, 500);
})
});
</script>
</head>
<body>
<div id="content">
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<div >back-to-top</div>
</div>
</body>
</html>
[3] 应用EGORefreshTableHeaderView实现下拉刷新
来源: 互联网 发布时间: 2014-02-18
使用EGORefreshTableHeaderView实现下拉刷新
在使用下拉刷新类库EGORefreshTableHeaderView的时候,将资源文件添加到工程中,也不要忘记添加QuartzCore.framework框架。
我们用到一个EGOTableViewPullRefresh的开源项目来实现这个功能,先到这里下载源码,下载完成后里面有个Demo是可以直接运行的Xcode工程,然后就是这个开源项目的源码,学习如何使用可以参照Demo。
1.
打开MainViewController.xib文件然后拖入一个UITableViewController并连接DataSource和Delegate,然后在MainViewController.h文件中声明UITableView的协议。
#import
#import "EGORefreshTableHeaderView.h"
@interface MainViewController : UITableViewController
{
EGORefreshTableHeaderView *_refreshTableView;
BOOL _reloading;
}
@property (strong,nonatomic) NSArray *array;
//开始重新加载时调用的方法
- (void)reloadTableViewDataSource;
//完成加载时调用的方法
- (void)doneLoadingTableViewData;
@end
2.
#import "MainViewController.h"
@interface MainViewController ()
@end
@implementation MainViewController
@synthesize array = _array;
#pragma mark -
#pragma mark View life cycle
-(void)viewDidLoad
{
[super viewDidLoad];
//设置导航条标题
self.navigationItem.title = @"Pull Refresh";
if (_refreshTableView == nil) {
//初始化下拉刷新控件
EGORefreshTableHeaderView *refreshView = [[EGORefreshTableHeaderView alloc] initWithFrame:CGRectMake(0.0f, 0.0f - self.tableView.bounds.size.height, self.view.frame.size.width, self.tableView.bounds.size.height)];
refreshView.delegate = self;
//将下拉刷新控件作为子控件添加到UITableView中
[self.tableView addSubview:refreshView];
_refreshTableView = refreshView;
}
//初始化用于填充表格的数据
NSArray *dataArray = [NSArray arrayWithObjects:@"Ryan",@"Vivi", nil];
self.array = dataArray;
//重新加载表格数据
[self.tableView reloadData];
}
-(void)viewDidUnload
{
[super viewDidUnload];
_refreshTableView = nil;
}
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationPortrait);
}
# pragma mark -
# pragma mark UITableViewDataSource Methods
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 10;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return [self.array count];
}
//带头标题的表格设置标题方法
-(NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return [NSString stringWithFormat:@"Title %d",section + 1];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"CellIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (!cell) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
cell.textLabel.text = [self.array objectAtIndex:indexPath.row];
return cell;
}
#pragma mark -
#pragma mark Data Source Loading / Reloading Methods
//开始重新加载时调用的方法
- (void)reloadTableViewDataSource{
_reloading = YES;
//开始刷新后执行后台线程,在此之前可以开启HUD或其他对UI进行阻塞
[NSThread detachNewThreadSelector:@selector(doInBackground) toTarget:self withObject:nil];
}
//完成加载时调用的方法
- (void)doneLoadingTableViewData{
NSLog(@"doneLoadingTableViewData");
_reloading = NO;
[_refreshTableView egoRefreshScrollViewDataSourceDidFinishedLoading:self.tableView];
//刷新表格内容
[self.tableView reloadData];
}
#pragma mark -
#pragma mark Background operation
//这个方法运行于子线程中,完成获取刷新数据的操作
-(void)doInBackground
{
NSLog(@"doInBackground");
NSArray *dataArray2 = [NSArray arrayWithObjects:@"Ryan2",@"Vivi2", nil];
self.array = dataArray2;
[NSThread sleepForTimeInterval:3];
//后台操作线程执行完后,到主线程更新UI
[self performSelectorOnMainThread:@selector(doneLoadingTableViewData) withObject:nil waitUntilDone:YES];
}
#pragma mark -
#pragma mark EGORefreshTableHeaderDelegate Methods
//下拉被触发调用的委托方法
-(void)egoRefreshTableHeaderDidTriggerRefresh:(EGORefreshTableHeaderView *)view
{
[self reloadTableViewDataSource];
}
//返回当前是刷新还是无刷新状态
-(BOOL)egoRefreshTableHeaderDataSourceIsLoading:(EGORefreshTableHeaderView *)view
{
return _reloading;
}
//返回刷新时间的回调方法
-(NSDate *)egoRefreshTableHeaderDataSourceLastUpdated:(EGORefreshTableHeaderView *)view
{
return [NSDate date];
}
#pragma mark -
#pragma mark UIScrollViewDelegate Methods
//滚动控件的委托方法
-(void)scrollViewDidScroll:(UIScrollView *)scrollView
{
[_refreshTableView egoRefreshScrollViewDidScroll:scrollView];
}
-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
{
[_refreshTableView egoRefreshScrollViewDidEndDragging:scrollView];
}
@end
最新技术文章: