سؤال

وإذا كان لدي UITableViewCell المخصصة التي لا تستخدم textLabel بنيت في الخلية ولكن بدلا من ذلك يقوم الرسم الخاصة به، كيف يمكنني تغيير مظهر من contentView على الاختيار، كما يفعل تلقائيا عن النص الافتراضي (للتخصيص عن طريق تعيين selectedTextColor:

إذا قمت بتغيير tableView:willSelectRowAtIndexPath:، ثم التحديثات فقط بعد خلفية اختيار الزرقاء، ولكن ليس في حين انها موحية، وكأنني أريد.

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

المحلول

وفقط لا فرعية UITableViewCell واستخدام السلوك الافتراضي. يمكنك تخصيص تماما خلية دون أي إن شاء subclasses ترث.

هذه المقالة لمزيد من التفاصيل.

نصائح أخرى

إضافة هذا الرمز في من طريقة tableview cellForRowAtIndexPath ومجرد تغيير اللون المتوقع لأسلوب اختيار UITableViewCell.

   //-------------------------------------------------------------------------
   //background selected view 
   UIView *viwSelectedBackgroundView=[[UIView alloc]init];
   viwSelectedBackgroundView.backgroundColor=[UIColor colorWithRed:124.0/255.0 green:202.0/255.0 blue:227.0/255.0 alpha:1.0];
   cell.selectedBackgroundView=viwSelectedBackgroundView;
   //-------------------------------------------------------------------------

إذا كان لديك subclassed لUITableViewCell، ثم يمكنك تخصيص عناصر الخلية عن طريق تجاوز ما يلي:

- (void)setHighlighted:(BOOL)highlighted animated:(BOOL)animated {
    if(highlighted) {
        self.backgroundColor = [UIColor redColor];
    } else {
        self.backgroundColor = [UIColor clearColor];
    }

    [super setHighlighted:highlighted animated:animated];
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top