Какао-Touch: UIPickerView viewForRow сбой - PullRequest
0 голосов
/ 07 октября 2009

У меня есть UIPickerView, в его делегате я пытаюсь настроить представление для строки. Я использую 3.1 SDK.

Итак, в делегате у меня есть:

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

Из яблочных документов: Если ранее использовавшееся представление (параметр view) является адекватным, верните его. Если вы возвращаете другое представление, ранее использованное представление освобождается. Представление средства выбора центрирует возвращенное представление в прямоугольнике для строки.

Когда я запускаю это, мой элемент управления UIPickerView не содержит никаких элементов и через некоторое время вылетает. Когда я удаляю этот конкретный метод (который является необязательным для делегата), я вижу метки, которые я установил с помощью метода titleForRow, и он больше не падает.

Я довольно новичок в какао (и касании какао), я не уверен, что вещь view.backgroundColor будет работать, но даже при возврате неизмененного старого представления (которое я должен сделать в любом случае для большинства строк) происходит сбой приложение.

Я что-то не так делаю?

1 Ответ

2 голосов
/ 07 октября 2009

Да, вы реализуете или –pickerView:titleForRow:forComponent: или –pickerView:viewForRow:forComponent:reusingView:, но не оба. Что происходит, так это то, что он не вызывает ваш –pickerView:titleForRow:forComponent:, потому что он использует ваш –pickerView:viewForRow:forComponent:reusingView:. Вы возвращаете параметр reusingView:, но это nil в первый раз, потому что для этой строки не было «ранее использованного представления».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...