在iOS 7中重复使用UIPickerView中的视图

编辑12-14-2015 :这个问题再次经常在iOS 7,iOS 8,iOS 9上报告….我认为苹果公司不想再控制这个控制,而应该禁止我们使用它,而不是让这样一个主要窃听器

我用一个UIPickerView与从Xib加载的自定义视图。 我正在使用该方法

-(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view 

从UIPickerViewDelegate重用我的意见。

使用iOS 6,我的UIPickerview完美地工作,我的意见被重用。

自iOS 7以来,reusingView始终为零,所以我需要加载每行的NIB(我有250行)。 我的意见正在做一些治疗,所以它可以采取一点点的内存,但X250 =大内存泄漏。

为了确定问题所在,我使用UILabel做了一个简单的项目:

 -(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view { UILabel *label = (UILabel *)view; if(view == nil) { label = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, pickerView.frame.size.width, 76)]; } else { NSLog(@"*******************************************************"); } NSLog(@"Current inndex : %i",row); label.text = [NSString stringWithFormat:@"TITRE %i", row]; return label; } 

在iOS 6中,我的视图被正确地重用:

2013-12-17 14:27:25.395 EssaiReusedViewPicker [261:907]当前的指数:220 2013-12-17 14:27:25.396 EssaiReusedViewPicker [261:907] ************** ***************************************** 2013-12-17 14:27: 25.397 EssaiReusedViewPicker [261:907]当前的innode:221 2013-12-17 14:27:25.404 EssaiReusedViewPicker [261:907] *********************** ******************************** 2013-12-17 14:27:25.407 EssaiReusedViewPicker [261:907]当前的indexdex :222 2013-12-17 14:27:25.409 EssaiReusedViewPicker [261:907] ******************************** *********************** 2013-12-17 14:27:25.410 EssaiReusedViewPicker [261:907] Current innode:223 2013-12-17 14: 27:25.411 EssaiReusedViewPicker [261:907] ***************************************** ************** 2013-12-17 14:27:25.412 EssaiReusedViewPicker [261:907] EssaiReusedViewPicker [261:907] 2013-12-17 14:27: ************************************************** ***** 2013-12-17 14:27:25.415 EssaiReusedViewPicker [261:907] Current in ndex:225 2013-12-17 14:27:25.420 EssaiReusedViewPicker [261:907] ******************************* ************************ 2013-12-17 14:27:25.424 EssaiReusedViewPicker [261:907]当前inndex:227 2013-12-17 14 :27:25.425 EssaiReusedViewPicker [261:907]

但是对于iOS 7,这是一个全新的故事……:

 2013-12-17 14:36:09.555 EssaiReusedViewPicker[7209:70b] Current inndex : 0 2013-12-17 14:36:09.557 EssaiReusedViewPicker[7209:70b] Current inndex : 1 2013-12-17 14:36:09.557 EssaiReusedViewPicker[7209:70b] Current inndex : 2 2013-12-17 14:36:09.560 EssaiReusedViewPicker[7209:70b] Current inndex : 0 2013-12-17 14:36:09.560 EssaiReusedViewPicker[7209:70b] Current inndex : 1 2013-12-17 14:36:09.561 EssaiReusedViewPicker[7209:70b] Current inndex : 2 2013-12-17 14:36:09.563 EssaiReusedViewPicker[7209:70b] Current inndex : 0 2013-12-17 14:36:09.563 EssaiReusedViewPicker[7209:70b] Current inndex : 1 2013-12-17 14:36:09.564 EssaiReusedViewPicker[7209:70b] Current inndex : 2 2013-12-17 14:36:09.566 EssaiReusedViewPicker[7209:70b] Current inndex : 0 2013-12-17 14:36:09.567 EssaiReusedViewPicker[7209:70b] Current inndex : 1 2013-12-17 14:36:09.567 EssaiReusedViewPicker[7209:70b] Current inndex : 2 2013-12-17 14:36:09.568 EssaiReusedViewPicker[7209:70b] Current inndex : 1 2013-12-17 14:36:09.568 EssaiReusedViewPicker[7209:70b] Current inndex : 2 2013-12-17 14:36:09.569 EssaiReusedViewPicker[7209:70b] Current inndex : 0 2013-12-17 14:36:09.569 EssaiReusedViewPicker[7209:70b] Current inndex : 1 2013-12-17 14:36:14.172 EssaiReusedViewPicker[7209:70b] Current inndex : 3 2013-12-17 14:36:14.350 EssaiReusedViewPicker[7209:70b] Current inndex : 3 2013-12-17 14:36:14.351 EssaiReusedViewPicker[7209:70b] Current inndex : 2 2013-12-17 14:36:14.367 EssaiReusedViewPicker[7209:70b] Current inndex : 4 2013-12-17 14:36:14.667 EssaiReusedViewPicker[7209:70b] Current inndex : 4 2013-12-17 14:36:14.668 EssaiReusedViewPicker[7209:70b] Current inndex : 3 2013-12-17 14:36:14.700 EssaiReusedViewPicker[7209:70b] Current inndex : 5 2013-12-17 14:36:15.067 EssaiReusedViewPicker[7209:70b] Current inndex : 5 2013-12-17 14:36:15.067 EssaiReusedViewPicker[7209:70b] Current inndex : 4 2013-12-17 14:36:15.083 EssaiReusedViewPicker[7209:70b] Current inndex : 6 2013-12-17 14:36:15.367 EssaiReusedViewPicker[7209:70b] Current inndex : 6 2013-12-17 14:36:15.367 EssaiReusedViewPicker[7209:70b] Current inndex : 5 2013-12-17 14:36:15.400 EssaiReusedViewPicker[7209:70b] Current inndex : 7 2013-12-17 14:36:16.416 EssaiReusedViewPicker[7209:70b] Current inndex : 7 

那么怎么了? iOS或…?

我已将问题报告给Apple技术支持。 他们确认了这个错误:

iOS 6和7的行为确实有区别。

他们要求我报告bugr​​eport工具的错误。 现在,只需等待修复:)