我现在被困在如何创建我的UITableView。现在它可以很好地使用1个对象为它的行和单元格提供数据。问题是,我有一个第二个对象,我也想在表视图中使用。通常,这很容易,我只是在UITableView中创建了2个部分,第一部分使用了一个对象,第二部分使用了第二个对象。
但对于这个UITableView,我只想使用1节。我需要以编程的方式用对象的两个文本填充行和单元格。我不知道怎么做,虽然只使用1节。
以下是我帮助创建UITableView的所有方法实现:
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1 ;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [self.messages count];
}
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section {
return @"Inbox Messages";
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellIdentifier = @"SettingsCell";
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:cellIdentifier];
PFObject *message = [self.messages objectAtIndex:indexPath.row];
UIImage *selectMessageButtonImage = [UIImage imageNamed:@"SliderThumb-Normal-G"];
UIImage *selectMessageButtonImageHighlighted = [UIImage imageNamed:@"SliderThumb-Normal"];
UIButton *openMessageButton = [[UIButton alloc]init];
openMessageButton.frame = CGRectMake(237, -10, 64, 64);
[openMessageButton setImage:selectMessageButtonImage forState:UIControlStateNormal];
[openMessageButton setImage:selectMessageButtonImageHighlighted forState:UIControlStateHighlighted];
[openMessageButton setImage:selectMessageButtonImageHighlighted forState:UIControlStateSelected];
[openMessageButton addTarget:self action:@selector(handleTouchUpInside:) forControlEvents:UIControlEventTouchUpInside];
openMessageButton.tag = indexPath.row;
[cell.textLabel setText:[message objectForKey:@"senderName"]];
NSString *fileType = [message objectForKey:@"fileType"];
if([fileType isEqualToString:@"image"]) {
cell.imageView.image = [UIImage imageNamed:@"icon_image"];
} else {
//no image
}
[cell.detailTextLabel setText:@""];
[cell.contentView addSubview:openMessageButton];
return cell;
}
我目前使用此UITableView的对象称为message
。我想创建一个名为message2
的第二个对象,并将它的数据放在UITableView中。
我意识到对于numberOfRowsInSection
方法实现,我只能返回两个对象的添加计数,但我不知道如何将第二个对象用于其余代码。
答案 0 :(得分:1)
为什么不组合两个NSArray
数组的msg
?如果从某个地方填充第二个msg数组,只需等到加载完成后再执行:
NSArray *bothArray = [msg1 arrayByAddingObjectsFromArray:msg2];
bothArray
可以使用datasource
作为TableView
的{{1}},当只有一个填充的msg
数组时,bothArray将只是来自{{1}的元素},当您填充msg1
时,只需使用上面的代码,然后调用:
msg2
答案 1 :(得分:0)
假设您有2个对象的2个数组:
NSArray *msg1;
NSArray *msg2;
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return msg1.count + msg2.count;
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
int msg1Count = msg1.count;
if(indexPath.row < msg1Count)
{
//Here you handle object1
PFObject *currentObject = msg1[indexPath.row];
}
else
{
//Here you handle object 2
PFObject *currentObject = msg2[indexPath.row - msg1Count];
}
}