【发布时间】:2015-10-24 17:58:28
【问题描述】:
我有一个非常旧的应用程序,其中有 UIPickerView,其中委托方法被调用 n 次,因为哪个应用程序崩溃了。
以下是我所拥有的。
我已经将 UIPickerView 连接到它的代理。
-
我有标签,点击它,我会在 uipickerview 中显示性别。
langLabel.userInteractionEnabled = YES; UITapGestureRecognizer *tapGestureRecognizergenderLabel = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(genderLabelTapped)]; tapGestureRecognizergenderLabel.numberOfTapsRequired = 1; [langLabel addGestureRecognizer:tapGestureRecognizergenderLabel]; [tapGestureRecognizergenderLabel release]; -(void) genderLabelTapped { NSLog(@"genderLabelTapped"); [normalPicker reloadAllComponents]; normalPicker.hidden = NO; pickerImage.hidden = NO; continueButton.userInteractionEnabled = NO; } -
我有如下代表。
#pragma mark - #pragma mark PickerView DataSource - (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView { NSLog(@"numberOfComponentsInPickerView"); return 1; } -(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view { CGRect screenRect = [[UIScreen mainScreen] bounds]; CGFloat screenHeight = screenRect.size.height; if (screenHeight==568) { [pickerView setFrame: CGRectMake(10, 332, 300, 216)]; } else { [pickerView setFrame: CGRectMake(10, 244, 300, 216)]; } UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 204, 44)]; // your frame, so picker gets "colored" label.textColor = [UIColor blackColor]; label.font = [UIFont fontWithName:[NSString stringWithFormat:@"%@", localize(@"myFontNameB")] size:14]; label.textAlignment = NSTextAlignmentCenter; label.text = [NSString stringWithFormat:@"%@", [arrayGender objectAtIndex:row]]; NSLog(@"changing font 1111...===%@", [arrayGender objectAtIndex:row]); return label; } - (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { return [arrayGender count]; } - (NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component { return [arrayGender objectAtIndex:row]; } -
我拥有的性别数组如下。
arrayGender = [[NSMutableArray alloc] init]; [arrayGender addObject:@"ENGLISH"]; [arrayGender addObject:@"العربية"];
每当我运行这段代码时,我总是看到下面的输出...
Oct 24 12:36:25 HardTask-iPad AppName[543] <Warning>: changing font 1111...===ENGLISH
Oct 24 12:36:25 HardTask-iPad AppName[543] <Warning>: changing font 1111...===العربية
Oct 24 12:36:25 HardTask-iPad AppName[543] <Warning>: changing font 1111...===ENGLISH
Oct 24 12:36:25 HardTask-iPad AppName[543] <Warning>: changing font 1111...===العربية
Oct 24 12:36:25 HardTask-iPad AppName[543] <Warning>: changing font 1111...===ENGLISH
Oct 24 12:36:25 HardTask-iPad AppName[543] <Warning>: changing font 1111...===العربية
Oct 24 12:36:25 HardTask-iPad AppName[543] <Warning>: changing font 1111...===ENGLISH
Oct 24 12:36:25 HardTask-iPad AppName[543] <Warning>: changing font 1111...===العربية
.
.
.
Oct 24 12:36:26 HardTask-iPad AppName[543] <Warning>: changing font 1111...===ENGLISH
Oct 24 12:36:26 HardTask-iPad AppName[543] <Warning>: changing font 1111...===العربية
Oct 24 12:36:26 HardTask-iPad AppName[543] <Warning>: changing font 1111...===ENGLISH
Oct 24 12:36:26 HardTask-iPad AppName[543] <Warning>: changing font 1111...===العربية
知道出了什么问题吗?
【问题讨论】:
-
尝试删除
if (screenHeight==568) { [pickerView setFrame: CGRectMake(10, 332, 300, 216)]; } else { [pickerView setFrame: CGRectMake(10, 244, 300, 216)]; }会发生什么? -
@anhtu : hhhhhhhh...多么好的答案...我不敢相信....它现在可以工作了....
-
我认为“genderLabelTapped”方法会在您的代码中不断执行。
-
@V.J. :不...检查anhtu评论...使其工作
-
@anhtu:你能把这个作为答案发布吗?我会接受的……
标签: ios objective-c delegates uipickerview