изменить размер текстовой метки представления UITable - PullRequest
0 голосов
/ 16 июня 2011

Я создал UITableView и написал следующий код в cellForRowAtIndexPath

static NSString *CellIdentifier = @"RootViewControllerCellIdentifier";

UITableViewCell *cell = [self.tableView queueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];

    cell.selectionStyle = UITableViewCellSelectionStyleGray;    

}

// Set appropriate labels for the cells.
switch (indexPath.row) {
    case 0:
        cell.textLabel.text = @"Static Scenes";             
        **[cell.textLabel setFrame:CGRectMake(200, 20, 500,600)];**
        cell.imageView.image=[UIImage imageNamed:@"RunOptionsImage.png"];
        cell.imageView.frame=CGRectMake(15, 20, 55, 65);
        break;

, как вы можете понять из приведенного выше кода, у меня есть textLabel ячейки табличного представления с именем Статические сцены .

в этом коде [cell.textLabel setFrame: CGRectMake (200, 20, 500,600)]; я планирую установить фрейм textLabel.но этоне меняя размер в соответствии с установленным мною кадром.я также использовал этот код cell.textLabel.frame = CGRectMake (200, 20, 500,600).может кто-нибудь сказать мне хороший способ изменить размер текстовой метки.

Ответы [ 3 ]

1 голос
/ 16 июня 2011

В дополнение к изменению размера текстовой метки вам также необходимо вернуть соответствующую высоту в методе tableView:heightForRowAtIndexPath:.В противном случае любые изменения макета не будут отражены.

0 голосов
/ 16 июня 2011

Я считаю, что UITableView фактически размещает ячейку после того, как он запрашивает cellForRowAtIndexPath.Хотя я согласен с ответом donalbain о том, что вы должны использовать настраиваемую ячейку, я считаю, что вы можете получить желаемую функциональность, изменив фрейм внутри этого метода делегата

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell forRowAtIndexPath:(NSIndexPath *)indexPath
0 голосов
/ 16 июня 2011

Из того, что я понимаю, вы никогда не должны изменять ничего, кроме содержимого ячейки в ячейке в cellForRowAtIndexPath. Зацените один из моих вопросов . Резюме:

Итак, золотое правило: НИКОГДА не менять структура клетки после того, как вы dequed Это. Если вам нужно изменить структура затем использовать разные идентификаторы ячеек. Конечно, более настраиваемым является ячейка, тем проще возможность использовать их повторно.

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