在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始终为nil,因此我需要为每行加载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]当前索引:221 2013-12-17 14:27:25.404 EssaiReusedViewPicker [261:907] *********************** ************************************ 2013-12-17 14:27:25.407 EssaiReusedViewPicker [261:907]当前索引:222 2013-12-17 14:27:25.409 EssaiReusedViewPicker [261:907] ******************************** *********************** 2013-12-17 14:27:25.410 EssaiReusedViewPicker [261:907]当前索引:223 2013-12-17 14: 27:25.411 EssaiReusedViewPicker [261:907] ********************************************* ************** 2013-12-17 14:27:25.412 EssaiReusedViewPicker [261:907]当前索引:224 2013-12-17 14:27:25。414 EssaiReusedViewPicker [261:907] *********************************************** ************ 2013-12-17 14:27:25.415 EssaiReusedViewPicker [261:907]当前索引:225 2013-12-17 14:27:25.420 EssaiReusedViewPicker [261:907] ** ****************************************************** *** 2013-12-17 14:27:25.424 EssaiReusedViewPicker [261:907]当前索引: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工具上的错误。现在,只需等待修复:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章