私は mdspreadview セルで作業しています: https://github.com/mochidev/MDSpreadView 上記のリンクから。
水平方向にスクロールすると、cellforrowatindexpath
メソッドが呼び出され、セルの値が変更されます。
- (MDSpreadViewCell *)spreadView:(MDSpreadView *)aSpreadView cellForRowAtIndexPath:(MDIndexPath *)rowPath forColumnAtIndexPath:(MDIndexPath *)columnPath
{
static NSString *cellIdentifier = @"Cell";
MDSpreadViewCell *cell = [aSpreadView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
cell = [[[MDSpreadViewCell alloc] initWithStyle:MDSpreadViewCellStyleDefault reuseIdentifier:cellIdentifier] autorelease];
}
switch (columnPath.row) {
case 0:
{
radiobutton=[[UIButton alloc]initWithFrame:CGRectMake(0, 0, 10, 20)];
[radiobutton setImage:[UIImage imageNamed:@"radio_button_off.png"] forState:UIControlStateNormal];
[radiobutton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
radiobutton.titleLabel.font =[UIFont systemFontOfSize:14.f];
cell.backgroundColor=[UIColor blackColor];
[cell addSubview:radiobutton];
break;
}
case 1:
cell.textLabel.text=[self.timearray objectAtIndex:rowPath.column];
break;
case 2:
cell.textLabel.text=[self.firstnamearray objectAtIndex:rowPath.column];
break;
case 3:
cell.textLabel.text=[self.lastnamearray objectAtIndex:rowPath.column];
break;
case 4:
cell.textLabel.text=[self.agearray objectAtIndex:rowPath.column];
break;
case 5:
cell.textLabel.text=[self.reasonarray objectAtIndex:rowPath.column];
break;
case 6:
cell.textLabel.text=[self.statusarray objectAtIndex:rowPath.column];
default:
break;
}
NSLog(@"%d,%d,%d,%d,%d,%d",rowPath.section,columnPath.section,rowPath.row,columnPath.row,rowPath.column,columnPath.column);
return cell;
}
- (void)spreadView:(MDSpreadView *)aSpreadView didSelectCellForRowAtIndexPath:(MDIndexPath *)rowPath forColumnAtIndexPath:(MDIndexPath *)columnPath
{
[spreadView deselectCellForRowAtIndexPath:rowPath forColumnAtIndexPath:columnPath animated:YES];
NSLog(@"Selected %@ x %@", rowPath, columnPath);
}
スプレッド ビューの幅がビューの幅より大きい場合、この問題が発生します。
それから私の問題は、ビューがロードされたときにボタンが最初の列と4番目の列(ケース0とケース4)に追加されることですが、最初のものだけに追加しました。ここ数日苦労していた私を助けてください。ありがとうございました。