كيف يمكنني تعطيل SelectRowatIndexPath عندما تكون العرض الفرعي مرئيًا

StackOverflow https://stackoverflow.com/questions/1942834

سؤال

أنا أكتب "Tweetie 2" مثل وظائف Swipe ، لكنني واجهت ما آمل أن يكون آخر كتلة عثرة.

عندما يمرر المستخدم عبر صف الجدول ، فإن عرض "عناصر التحكم" ينشط كما هو متوقع ، ولكن عندما يكون الصف محدد ، DeSelectRowatIndexPath تم إطلاقه. النتيجة المرجوة هي عندما تكون عرض "الضوابط" مرئيًا لتعطيل DeSelectRowatIndexPath الطريقة أو لعدم وجود عبارة أفضل ... أوقف سلسلة المستجيب لمواصلة الماضي "عناصر التحكم".

يتم استخدام طرق مندوب UITouch/يتم استدعاؤها في UITABLViewCell المخصص.

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

المحلول

يجب أن يقوم القليل من المنطق بالمهمة هنا. لنفترض أنك تضيف هذه الخاصية إلى فئة UlitableViewController الفرعية:

NSIndexPath *indexPathForCellInUtilityMode;

عندما يقوم المستخدم بإعداد طريقة عرض الأداة المساعدة للخلية ، تقوم خلية هذا:

NSIndexPath *cellIndexPath = [parentViewController.tableView indexPathForCell:self];
parentViewController.indexPathForCellInUtilityMode = cellIndexPath;

ثم:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {


if ([indexPath compare:indexPathForCellInUtilityMode] != NSOrderedSame) {
//Do whatever you're normally doing in this method.
}

لذلك ستقوم بتعطيل الاختيار للخلية المتأثرة مع السماح للمستخدم بالتفاعل مع الخلايا المرئية الأخرى.

نصائح أخرى

ماذا عن إعداد/إشراك قيمة allowsSelection في UITableView كما هو مطلوب؟

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