سؤال

في تطبيقي لدي عرض جدول مع CustomViewCells. قمت بتصفية فئة QuatedViewCell وأضفت صورة ستحميل ASYNC وللصوص التي أستخدمها cell.textLabel.text = @"someThext".

بالنسبة للخلايا، يتم تعيين لون الخلفية بدلا من ذلك [UIColor darkGrayColor] و [UIColor whiteColor].

عندما أقوم بتشغيل التطبيق في محاكاة وعلى الهاتف textLabel من الخلية لديها خلفية بيضاء. أريد أن أقوم بتعيينه ليكون واضحا، لأنني أريد أن يكون لون الخلفية للخلية ممتلئا وليس شريطا ثم أبيض ثم شريط آخر.

في طريقة INIT الخلايا المخصصة التي أضافتها، على أمل أن يتحول الأبيض إلى أحمر، ولكن ليس له أي تأثير:

[self.textLabel setBackgroundColor:[UIColor redColor]];

حاولت أيضا:

self.textLabel.backgroundColor = [UIColor redColor];

ولكن هذا أيضا لم ينجح ... إذا قمت بإضافة Uilabel كوحدة فرعية، يمكن ضبط لون الخلفية من الملصق، لكنني لا أريد أن أفعل ذلك لأنه عندما أتدور الهاتف أريد أن تلصقاتي تكبير.

أي أفكار لماذا تحدد لون الخلفية cell.textLabel لا يعمل؟

شكرا لك

هل كانت مفيدة؟

المحلول 2

المشكلة هي أن Uikit يحدد لون خلفية الخلية بطريقة -SETSELETED. كان لدي الطريقة ولكن لم يكن لديك self.textlabel.backgroundcolor = [Uicolor clearcolor]؛ self.detailtextlabel.backgroundcolor = [Uicolor clearcolor]؛ في ذلك، أضفت لهم وتم إصلاح المشكلة المذكورة في الصورة.

- (void)setSelected:(BOOL)selected animated:(BOOL)animated {
    [super setSelected:selected animated:animated];
    self.textLabel.backgroundColor = [UIColor clearColor];
    self.detailTextLabel.backgroundColor = [UIColor clearColor];
}

نصائح أخرى

إذا كنت لا ترغب في تصنيف Subclass ayimateviewcell، فيمكنك فقط إضافة هذا:

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath {
     [[cell textLabel] setBackgroundColor:[UIColor clearColor]];
     [[cell detailTextLabel] setBackgroundColor:[UIColor clearColor]];
}

يبدو أن Apple غيرت شيئا هنا. القيام بذلك بالضبط في أعمال iOS4:

self.textLabel.backgroundColor = [UIColor xxxColor];
self.detailTextLabel.backgroundColor = [UIColor xxxColor];

على الأقل حتى النقطة التي تكون فيها خلفية الملصقات شفافة أو تأخذ لون الخلفية. لا يزال غير ممكن تعيين لون الخلفية الخاصة.

لطيفة أن هذا ثابت، ولكن مفاجأة بعض الشيء أثناء الاختبارات إذا كنت تتطور مع قاعدة SDK 4.1 وارد. النشر 3.1 للحصول على اي فون الكلاسيكية وباد.

لتعيين لون خلفية واضحة يمكنك استخدام clearcolor:

    [[cell textLabel] setBackgroundColor:[UIColor clearColor]];

هل هذا ما تقصده؟

شاهد هذا المنشور: كيف يمكنني تعيين الخاصية القديمة CellselStyle إلى بعض الألوان المخصصة؟

في حالتك، استخدم UIView بلون خلفية بيضاء

لم أحاول ذلك ولكن هنا تخمين ... من أجل رسم أسرع قد يتم تعيين الخاصية غير شفافة للتسمية إلى True افتراضيا.

يحاول

cell.titleLabel.opaque = NO;
cell.titleLabel.backgroundColor = [UIColor clearColor];

إذا لم ينجح ذلك إما، فربما أستسلم فقط في هذه المرحلة وإنشاء Uilabel الخاص بي للخلية.

لتعيين لون TextLabel، يجب عليك القيام بذلك: t.textcolor = [Uicolor coloryouwwantrgb]؛

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top