我正在我的应用中制作收件箱模块。我想问一下,我想在从Json传入数据后在UITableView中创建一个programaticaly标签。通过它我们点击并获得更多数据?怎么做?例如在facebook中,我们点击消息,然后向下移动我们点击加载更多消息???加载更多消息标签我发送另一个呼叫以加载更多消息。
答案 0 :(得分:1)
好的,所以你必须一起破解这一切。这是在您的uitableview上获取"加载更多数据" cell
的常用方法
需要的方法
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return dataRows+1;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
//after setting tableviewcell
if(indexPath.row==dataRows){
cell.textLabel.text=@"Load More Rows";
}
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if(indexPath.row==dataRows){
//there you can write code to get next rows
}
}
好的,这是黑客必须开始的地方。看看这个CODE。
似乎最重要的方法是
- (void)reloadTableView:(int)startingRow
答案 1 :(得分:0)
为此您可以设置为按钮。如果您在tableview中单击该按钮,您可以获得更多数据,否则您可以逐步获取数据,如十分之十的数据。
创建自定义单元格并在自定义单元格中设置按钮也将名称命名为btnLoadMore
在头文件
中@interface myViewController : UIViewController {
int loadMoreTableInt;
int paginationInt;
}
在.m文件中
- (void)viewDidLoad {
[super viewDidLoad];
loadMoreTableInt = 0;
paginationInt = 1;
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
customCell *cell=(customCell*)[tableView dequeueReusableCellWithIdentifier:@"Reuse"];
NSArray *nib=[[NSBundle mainBundle] loadNibNamed:@"customCell" owner:self options:nil];
if(cell == nil) {
cell=[nib objectAtIndex:0];
}
if(loadMoreTableInt-1> indexPath.row) {
cell.labelName.text = [NSString stringWithFormat:@"%@",[modelRoot.arrayName objectAtIndex:indexPath.row]];
} else {
if(cell == nil) {
cell=[nib objectAtIndex:1];
}
[cell.btnLoadMore setTitle:[NSString stringWithFormat:@"Load More "] forState:UIControlStateNormal];
cell.btnLoadMore.tag=indexPath.row;
cell.accessoryType=UITableViewCellAccessoryNone;
[cell.btnSeeMorebtnLoadMore addTarget:self action:@selector(loadmoreButtonAction:) forControlEvents:UIControlEventTouchUpInside];
cell.selectionStyle=UITableViewCellSelectionStyleNone;
}
在loadmoreButtonAction中给出像这样的代码
-(void)loadmoreButtonAction:(id)sender {
@try {
UIButton *btn=(id)sender;
paginationInt=paginationInt+1;
[tableview reloadData];
CGPoint point;
point.x=40;
point.y=btn.tag*53;
NSIndexPath *path = [tableview indexPathForRowAtPoint:point];
[tableview scrollToRowAtIndexPath:path atScrollPosition:UITableViewScrollPositionTop animated:NO];
}@catch (NSException *exception) {
}
}