我在数据库中有id值和product_image值。图像与id值相关联。我将productimg_array图像值设置为按钮以进行单击。所以,我需要在这个按钮上设置id值。所以,我是循环的。如果我使用int i = 0,则显示图像,但如果我设置int i = cat_iamgeId,则图像不显示。为什么呢?
productimg_array = [[NSMutableArray array]init];
cat_imageidArray = [[NSMutableArray alloc]init];
const char *sql = "SELECT id,cat_id,product_image,order_by,description FROM product where cat_id = ?";
NSLog(@"sql is %s",sql);
sqlite3_stmt *statement;
if (sqlite3_prepare_v2(database, sql, -1, &statement, NULL) == SQLITE_OK) {
// We "step" through the results - once for each row.
if (sqlite3_bind_int(statement, 1, categoryId) != SQLITE_OK)
NSLog(@"%s: bind failed: %s", __FUNCTION__, sqlite3_errmsg(database));
while (sqlite3_step(statement) == SQLITE_ROW) {
cat_iamgeId = sqlite3_column_int(statement, 0);
NSLog(@"cat_iamgeId is %ld",(long)cat_iamgeId);
[cat_imageidArray addObject:@(cat_iamgeId)];
product_image = [[NSString alloc] initWithUTF8String:
(const char *) sqlite3_column_text(statement, 2)];
NSLog(@"product_image is %@",product_image);
[productimg_array addObject:product_image];
NSLog(@"productimg_array %@", productimg_array);
}
}
对于UIButton的循环点击:
// for (int i = 0; i<[productimg_array count]; i++ ) {
for (int i = cat_iamgeId; i<[productimg_array count]; i++ ) {
NSLog(@"productimg_array_index %@", productimg_array[i]);
imgView1=[[UIButton alloc]initWithFrame:CGRectMake(20+(i*74), 0, 72, 72)];
Width = Width + 20+(i*74);
// tag=[[cat_imageidArray objectAtIndex:i]intValue];
imgView1.tag=i;
NSLog(@"product id is %ld ", (long)imgView1.tag);
[imgView1 addTarget:self action:@selector(dbsofaClicked:) forControlEvents:UIControlEventTouchUpInside];
[imgView1 setImageWithURL:[NSURL URLWithString:[productimg_array objectAtIndex:i]]
forState:UIControlStateNormal];
[scrollview addSubview:imgView1];
}