سؤال

ولدي UIPickerView، في انها مندوب أحاول أن تخصيص العرض للحصول على التوالي. أنا باستخدام SDK 3.1.

وحتى في مندوب لدي:

- (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