グリッドビューで画像を表示しています。4、8、12、16などの画像がある場合は正常に機能しますが、4、8、12より多いまたは少ない画像がある場合、それらをクリックできません。6 つの画像がある場合、4 つの画像をクリックできますが、5 番目と 6 番目の画像をクリックすることはできません。
これは私のテーブルビューコードです
- (UITableViewCell *)tableView:(UITableView *)tableView_p cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *hlCellID = @"hlCellID";
UITableViewCell *hlcell = [tableView_p dequeueReusableCellWithIdentifier:hlCellID];
if(hlcell == nil) {
hlcell = [[[UITableViewCell alloc]
initWithStyle:UITableViewCellStyleDefault reuseIdentifier:hlCellID] autorelease];
hlcell.accessoryType = UITableViewCellAccessoryNone;
hlcell.selectionStyle = UITableViewCellSelectionStyleNone;
}
int section = indexPath.section;
NSMutableArray *sectionItems = [sections objectAtIndex:section];
int n = [sectionItems count];
int i=0,i1=0;
while(i<n){
int yy = 4 +i1*74;
int j=0;
for(j=0; j<4;j++){
if (i>=n) break;
NSLog(@"Counter i %d , j %d , n %d ",i,j, n);
Item *item = [sectionItems objectAtIndex:i];
CGRect rect = CGRectMake(16+75*j, yy, 65, 65);
UIButton *button=[[UIButton alloc] initWithFrame:rect];
[button setFrame:rect];
//UIImage *buttonImageNormal=[UIImage imageNamed:item.image];
UIImage *buttonImageNormal = item.savedImage;
[button setBackgroundImage:buttonImageNormal forState:UIControlStateNormal];
[button setContentMode:UIViewContentModeCenter];
NSString *tagValue = [NSString stringWithFormat:@"%d%d", indexPath.section+1, i];
button.tag = [tagValue intValue];
//NSLog(@"....tag....%d", button.tag);
[button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
[hlcell.contentView addSubview:button];
[button release];
/*UILabel *label = [[[UILabel alloc] initWithFrame:CGRectMake((75*j)-4, yy+44, 80, 12)] autorelease];
label.text = item.title;
label.textColor = [UIColor blackColor];
label.backgroundColor = [UIColor clearColor];
label.textAlignment = UITextAlignmentCenter;
label.font = [UIFont fontWithName:@"ArialMT" size:12];
[hlcell.contentView addSubview:label];
*/
i++;
}
i1 = i1+1;
}
return hlcell;
}
- (void)loadView {
[super loadView];
sections = [[NSMutableArray alloc] init];
imagesPath = [[NSMutableArray alloc] init];
for(int s=0;s<1;s++) { // 4 sections
sectionPattern = [[NSMutableArray alloc] init];
for(int i=0;i<9+3;i++) { // 12 items in each section
NSLog(@"Loop First %d",i);
//Here i am allocating images to sectionPattern and than in sections and using it later in above code
NSLog(@"Loop OUt %d",i);
}
[sections addObject:sectionPattern];
}
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 1;
}