私は新しいiOSプログラマです。私は1つの問題を抱えています。 各リフレッシュ時に配列からUITableViewに30個のデータを追加するには
下にユーザーがスクロールそれを下にはあなたが私助けてくださいでした私はUITableView
ていると私は配列から毎回30の項目を追加したいですか?あなたは、コードの下に使用することができます
#import "ViewController.h"
@interface ViewController()
{
UIRefreshControl* refreshControl;
int counter;
//NSMutableArray *new;
}
@end
@implementation ViewController
@synthesize tableViewForScreen;
@synthesize array;
- (void)viewDidLoad
{
[super viewDidLoad];
refreshControl = [[UIRefreshControl alloc]init];
[tableViewForScreen addSubview:refreshControl];
[refreshControl addTarget:self action:@selector(refreshTable) forControlEvents:UIControlEventValueChanged];
//new =[[NSMutableArray alloc]init];
array = [[NSMutableArray alloc] initWithCapacity:570];
counter =30;
if(counter>[array count]){
counter = [array count];
}
}
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[ tableViewForScreen flashScrollIndicators];
}
- (void)viewDidUnload
{
[self setTableViewForScreen:nil];
[super viewDidUnload];
// Release any retained subviews of the main view.
}
#pragma mark - Table View
// set number of Sections in Table
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
// set number of Rows in each Sections of Table
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return counter;
}
// Set animated style for Table Cell Editing
-(void) setEditing:(BOOL)editing animated:(BOOL)animated {
[super setEditing:editing animated:animated];
[self.tableViewForScreen setEditing:editing animated:animated];
}
// Customize the appearance of Table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
cell.textLabel.text = [array objectAtIndex:indexPath.row];
return cell;
}
- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
{
// Return NO if you do not want the specified item to be editable.
return YES;
}
- (void)scrollViewDidScroll:(UIScrollView *)aScrollView {
CGPoint offset = aScrollView.contentOffset;
CGRect bounds = aScrollView.bounds;
CGSize size = aScrollView.contentSize;
UIEdgeInsets inset = aScrollView.contentInset;
float y = offset.y + bounds.size.height - inset.bottom;
float h = size.height;
// NSLog(@"offset: %f", offset.y);
// NSLog(@"content.height: %f", size.height);
// NSLog(@"bounds.height: %f", bounds.size.height);
// NSLog(@"inset.top: %f", inset.top);
// NSLog(@"inset.bottom: %f", inset.bottom);
// NSLog(@"pos: %f of %f", y, h);
float reload_distance = 10;
if(y > h + reload_distance) {
NSLog(@"load more rows");
if(counter+30<[array count]){
counter += 30;
[tableViewForScreen reloadData];
[tableViewForScreen flashScrollIndicators];
} else if([array count]>counter) {
counter = [array count];
[tableViewForScreen reloadData];
[tableViewForScreen flashScrollIndicators];
}
}
}
- (void)dealloc {
[tableViewForScreen release];
[super dealloc];
}
@end
UiTableViewの各 "reloadData"には、前回のリロードより30項目以上が表示されますか? – ddb
はい@ddbそれぞれのリロードで30個以上のアイテムを追加したい –
私の答えを確認してください:) – ddb