我使用 tag++ 创建了多个按钮。我需要知道使用 sender 方法单击哪个按钮。单击带有标签的按钮时,我需要从数据库中获取值。我应该使用 if 方法作为点击按钮的标签位置吗
button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button1 addTarget:self action:@selector(click1:) forControlEvents:UIControlEventTouchDown];
[button1 setTitle:@"click" forState:UIControlStateNormal];
button1.frame = CGRectMake(xff, yff, 30.0, 20.0);
int gTag = 1;
button1.tag = gTag;
gTag++;
[wbCont.scrollView addSubview:button1];
在这里我需要知道按钮点击:
-(void)click1:(id)sender{
UIButton *button3=(UIButton *)sender;
switch([button3 tag]){
//Do the switch case here
NSArray *coorpaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *coordocumentsDirectory = [coorpaths objectAtIndex:0];
NSLog(@"docs dir is %@", coordocumentsDirectory);
NSString *coorpath = [coordocumentsDirectory stringByAppendingPathComponent:@"ohs.sqlite"];
NSLog(@"filepath %@",coorpath);
if (sqlite3_open([coorpath UTF8String], &database) == SQLITE_OK) {
const char *sql = [[NSString stringWithFormat:
@"SELECT xcoor,ycoor,artt_id FROM touch where artt_id = %@", artID]cStringUsingEncoding:NSUTF8StringEncoding];
NSLog(@"getmainsql 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.
while (sqlite3_step(statement) == SQLITE_ROW) {
xff1=sqlite3_column_double(statement, 0);
yff1=sqlite3_column_double(statement, 1);
art_Id2 = sqlite3_column_int(statement, 2);
NSLog(@"xff1 is %f",xff1);
NSLog(@"yff1 is %f",yff1);
// NSLog(@"zc is %@",zc);
NSLog(@"art_Id is %ld",(long)art_Id2);
}
}
}
}