تعيين نوع ملحق UitableViewCell على بعض الخلايا ، ولكن ليس كل شيء

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

سؤال

لدي 8 خلايا يتم بناؤها في UITableViewController. أود أن أعرف كيف يمكنني إظهار مؤشر الكشف على الخلايا الرابعة والثامنة. الآن أنا أبنيه في

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 

على الرغم من أنني أدرك تمامًا أنها ستضيف مؤشر الكشف إلى كل خلية

cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
هل كانت مفيدة؟

المحلول

استخدم عبارة بسيطة إذا:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    ... // do whatever
    UITableViewCellAccessoryType accessoryType = UITableViewCellAccessoryNone;
    if (indexPath.row == 3 || indexPath.row == 7) {
        accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    }
    cell.accessoryType = accessoryType;
    ... // do whatever
}

نصائح أخرى

أنت تعرف indexpath ، فلماذا لا تطبق فقط مؤشر الإفصاح عند

if((indexPath.row == 3) || (indexPath.row == 7))

?

(INDEXPATH.ROW يعتمد على 0 بالطبع ... الرابع هو 3 والثامن هو 7. ويجب عليك استخدام #defines أو طريقة أخرى للحفاظ على الأرقام السحرية من هناك أيضًا.)

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