카테고리 없음

[아이폰] UITableView abcd 목록 인덱싱

행복을전해요 2020. 12. 12. 15:04

이를 처리하는 쉬운 방법은 섹션 중 하나와 섹션 제목 중 하나 인 2 개의 배열을 만드는 것입니다. 그런 다음 init 메서드 (initWithObjects :, 예)의 정렬 된 MyClass 배열에서이를 채울 수 있습니다.

- (id) initWithObjects: (NSArray *) myObjectsArray
{
    self  = [super initWithNibName: <your-nib-name> bundle: nil];
    
        if (self) {
                self.sections = [NSMutableArray array];
                        self.sectionTitles = [NSMutableArray array];
                        
                                for (MyClass * object in self.myObjectsArray) {
                                            NSMutableArray * section = [self.sections lastObject];
                                            
                                                        if (!section || ![[[[section lastObject] name] substringToIndex: 1] isEqualToString: [object.name substringToIndex: 1]]) {
                                                                        // Create a new section on change of first character
                                                                        
                                                                                        [self.sections addObject: [NSMutableArray array]];
                                                                                                        [self.sectionTitles addObject: [object.name substringToIndex: 1]];
                                                                                                                    }
                                                                                                                    
                                                                                                                                [[self.sections lastObject] addObject: object];
                                                                                                                                        }
                                                                                                                                            }
                                                                                                                                            
                                                                                                                                                return self;
                                                                                                                                                }
                                                                                                                                                

그런 다음 데이터 소스 방법은

- (NSInteger) numberOfSectionsInTableView:(UITableView *)tableView
{
    return [self.sections count];
    }
    
    - (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
    {
        return [[self.sections objectAtIndex: section] count];
        }
        
        - (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
        {
            //Create cell
            
                MYClass * object = [[self.sections objectAtIndex: indexPath.section] objectAtIndex: indexPath.row];
                
                    //Configure cell
                    
                        return cell;    
                        }
                        
                        - (NSArray *) sectionIndexTitlesForTableView:(UITableView *)tableView
                        {
                            return self.sectionTitles;
                            }
                            


출처
https://stackoverflow.com/questions/7415053