我有一个UIPickerView,在它的委托我想自定义行的看法。我使用的3.1 SDK。

因此,在委托我有:

- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
//    view.backgroundColor = [UIColor redColor];
    return view;
}

从苹果文档: 如果以前使用的视图(查看参数)是足够的,返回。如果返回了不同的看法,以前使用的视图被释放。选择器视图中心在矩形为排返回的视图。

当我运行此,我UIPickerView控制没有任何项目在里面,经过短暂而崩溃。 当我删除该特定的方法(这是可选的代表),我可以看到我经由titleForRow方法设置的标签,并且将不再崩溃。

我是很新,可可(可可触摸),我不知道的东西view.backgroundColor将工作,但返回未修改的旧观点(我必须为大多数行做反正),即使我崩溃应用

我是不是做错了什么?

有帮助吗?

解决方案

是,你实现的或者–pickerView:titleForRow:forComponent:–pickerView:viewForRow:forComponent:reusingView:,但不能同时使用。正在发生的事情是,因为它正在使用您的–pickerView:titleForRow:forComponent:他并没有叫你–pickerView:viewForRow:forComponent:reusingView:。要返回的reusingView:参数,但是nil第一次,因为有该行没有“先前使用的视图。”

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top