Как правильно жестко кодировать разделы в UITableView? - PullRequest
0 голосов
/ 25 мая 2010

У меня есть UITableView с 3 разделами, которые жестко запрограммированы. Все работает нормально, но я не уверен, правильно ли я это делаю.

Определение количества строк в разделе:

- (NSInteger)tableView:(UITableView *)tblView numberOfRowsInSection:(NSInteger)section
{
    NSInteger rows;

        //Bio Section
        if(section == 0){
            rows = 2;
        }
        //Profile section
        else if(section == 1){
            rows = 5;
        }
        //Count section
        else if(section == 2){
            rows = 3;
        }
    }  

    return rows;
}

Вот где я строю свои клетки:

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

    static NSString *CellIdentifier = @"Cell";

    UITableViewCell *cell = [tblView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
    }

    cell.textLabel.numberOfLines = 5;
    cell.textLabel.font = [UIFont fontWithName:@"Helvetica" size:(10.0)];
    cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;

    if ([self.message_source isEqualToString:@"default"]) {
        if (indexPath.section == 0) {
            if (indexPath.row == 0) {
                cell.textLabel.text = [Utils formatMessage:[NSString stringWithFormat: @"%@", mySTUser.bio]];
                cell.detailTextLabel.text = nil;
            }
            else if(indexPath.row == 1){
                cell.textLabel.text = [NSString stringWithFormat: @"%@", mySTUser.website];
                cell.detailTextLabel.text = nil;
                cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
            }
        }
} //more code exists, but you get the point...

Теперь я определяю количество секций

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tblView 
{ 
     return 3;
}

Это правильный способ жесткого кодирования моего UITableView? Буду ли я сталкиваться с какими-либо проблемами при повторном использовании клеток?

1 Ответ

3 голосов
/ 25 мая 2010

Вы можете рассмотреть возможность использования дерева switch-case с перечисляемым типом , чтобы заменить условные выражения if, которые проверяют различные жестко запрограммированные целые числа. Это сообщение в блоге объясняет эту опцию более подробно. Использование switch-case с методами делегирования табличного представления сделает ваш код более читабельным и гибким. В противном случае ваш код повторного использования выглядит правильно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...