Как сделать просмотр таблицы прокручиваемым

Как сделать прокрутку UITableView?
Когда я прокручиваю вниз или прокручиваю вверх вне области таблицы, приложение довольно. Я использую класс tablehandler для моего источника данных в виде таблицы. Вот некоторые из кода из класса tablehandler.

// TableHandler.h #import <Foundation/Foundation.h> @interface TableHandler : NSObject <UITableViewDelegate, UITableViewDataSource> { NSMutableArray * tableDataList; //database variables NSString *databaseName; NSString *databasePath; } @property (nonatomic, retain) NSMutableArray * tableDataList; - (void) fillList; - (void) dbPathInit; - (void) getAllPhysician; @end // TableHandler.m #import "TableHandler.h" #import "DoctorItem.h" #import "DoctorItem.h" #import <sqlite3.h> @implementation TableHandler @synthesize tableDataList; - (void) fillList { [self dbPathInit]; [self getAllPhysician]; } -(void)dbPathInit{ databaseName=@"clinic_directory.db"; NSArray *documentPaths= NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES); NSString *documentsDir=[documentPaths objectAtIndex:0]; databasePath=[documentsDir stringByAppendingPathComponent:databaseName]; } -(void)getAllPhysician{ sqlite3 *database; self.tableDataList=[[NSMutableArray alloc]init]; if(sqlite3_open([databasePath UTF8String],&database)==SQLITE_OK){ const char *sqlStatement="select d._id, d.title, d.name dname, qualification, c.name cname from doctor d left join category_doctor cd ON cd.doctor_id=d._id LEFT JOIN category c on c._id=cd.category_id order by d.name asc"; sqlite3_stmt *compiledStatement; if (sqlite3_prepare_v2(database, sqlStatement, -1, &compiledStatement, NULL)==SQLITE_OK) {(sqlite3_step(compiledStatement)==SQLITE_ROW) { NSInteger doctorId=(int)sqlite3_column_int(compiledStatement,0); NSString *doctorTitle=[NSString stringWithUTF8String:(char*)sqlite3_column_text(compiledStatement, 1)]; NSString *doctorName=[NSString stringWithUTF8String:(char*)sqlite3_column_text(compiledStatement, 2)]; NSString *qualification=[NSString stringWithUTF8String:(char*)sqlite3_column_text(compiledStatement,3)]; NSString *category=[NSString stringWithUTF8String:(char*) sqlite3_column_text(compiledStatement,4)]; DoctorItem *physician=[[DoctorItem alloc]initWithId:doctorId Title:doctorTitle DName:doctorName Qualifications:qualification CName:category]; [self.tableDataList addObject:physician]; [physician release]; } } sqlite3_finalize(compiledStatement); } sqlite3_close(database); } - (NSInteger) tableView : (UITableView *) tableView numberOfRowsInSection: (NSInteger) section { return [self.tableDataList count]; } -(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]; } DoctorItem *physician=(DoctorItem*)[tableDataList objectAtIndex:indexPath.row]; UILabel *lbName=[[UILabel alloc] initWithFrame:CGRectMake(10, 10, 290, 25)]; [lbName setText:physician.DName]; [cell.contentView addSubview:lbName]; [lbName release]; UILabel *lbQualifications=[[UILabel alloc]initWithFrame:CGRectMake(10,40,290,25)]; [lbQualifications setText:physician.Qualifications]; lbQualifications.textColor=[UIColor lightGrayColor]; [cell.contentView addSubview:lbQualifications]; [lbQualifications release]; UILabel *lbCategory=[[UILabel alloc]initWithFrame:CGRectMake(10,70,290,25)]; [lbCategory setText:physician.CName]; lbCategory.textColor=[UIColor lightGrayColor]; [cell.contentView addSubview:lbCategory]; [lbCategory release]; [physician release]; return cell; } -(CGFloat)tableView :(UITableView*)tableView heightForRowAtIndexPath:(NSIndexPath*)indexPath{ return 100; } - (void)dealloc { [tableDataList release]; [super dealloc]; } @end 

UITableView является подклассом UIScrollView. Он будет автоматически прокручиваться для вас.

Вашему UITableView понадобится объект источника данных для его передачи. Если число или строки из источника данных больше, чем то, что может поместиться на экране, таблица будет прокручиваться.

Если вы хотите программно прокручивать таблицу, вы можете использовать свойство offset для UIScrollView или один из методов в UITableView для этого.

http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UITableView_Class/Reference/Reference.html

http://developer.apple.com/library/ios/#DOCUMENTATION/UIKit/Reference/UIScrollView_Class/Reference/UIScrollView.html

По мере того, как вы увеличиваете свои таблицы таблицы, он автоматически прокручивается. Не нужно включать дополнительные свойства для tableview.

Например:

 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return 10; } 

Вы не делаете это на самом деле прокручиваемым, устанавливая свойство или так. Посмотрите на UITableviewDataSource и UITableviewDelegate Protocols. Внедряя эти сообщения, вы предоставляете данные для представления таблицы, и затем они будут автоматически прокручиваться по мере необходимости.