我有一个 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 是否会起作用,但即使返回未修改的旧视图(对于大多数行我必须这样做)也会使我的应用程序崩溃。
难道我做错了什么?