Cacau-Touch: UiPickerView ViewForrow Crashing
-
20-09-2019 - |
Pergunta
Eu tenho um Uipickerview, em seu delegado estou tentando personalizar a visualização de uma linha. Estou usando o 3.1 SDK.
Então, no delegado, eu tenho:
- (UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view {
// view.backgroundColor = [UIColor redColor];
return view;
}
A partir do Apple Docs: se a visualização usada anteriormente (o parâmetro de exibição) for adequado, retorne isso. Se você retornar uma visualização diferente, a visualização usada anteriormente será lançada. A visualização do seletor centraliza a visualização retornada no retângulo para a linha.
Quando eu corro isso, meu controle UiPickerview não possui itens e, depois de um curto período de tempo. Quando removo esse método específico (que é opcional para o delegado), posso ver os rótulos que defino através do método do TitleForrow e ele não falhará mais.
Sou muito novo no cacau (e no cacau), não tenho certeza se a coisa da vista.
Estou fazendo algo errado?
Solução
Sim, você implementa qualquer –pickerView:titleForRow:forComponent:
ou –pickerView:viewForRow:forComponent:reusingView:
, mas não ambos. O que está acontecendo é que não está chamando seu –pickerView:titleForRow:forComponent:
Porque está usando o seu –pickerView:viewForRow:forComponent:reusingView:
. Você está devolvendo o reusingView:
parâmetro, mas isso é nil
A primeira vez, porque não havia "visualização usada anteriormente" para essa linha.