как изменить размер UITableViewCell, чтобы он подходил к любому detailTextLabel - PullRequest
3 голосов
/ 01 марта 2011

я создаю приложение для iphone, чтобы любой текст в detailTextlabel поместился независимо от того, что

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

спасибо: D

Ответы [ 3 ]

2 голосов
/ 11 апреля 2011
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{


    CGSize maxSize = CGSizeMake(max_size);
    CGSize cellSize = [yourString 
                       sizeWithFont:[UIFont systemFontOfSize:15]
                       constrainedToSize:maxSize
                       lineBreakMode:UILineBreakModeWordWrap];
    return cellSize.height;

}
1 голос
/ 11 апреля 2011

Рассмотрим мою реализацию:

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

switch (theSection) {
    case 0:
        if (indexPath.row ==6) //the row you need to check for height (if any)

        {

            if([yourString length]<=35) // if less than 35 chars, just return a basic size of 50
            {
                return 50;
            }

            CGSize detailSize = [yourString sizeWithFont:[UIFont systemFontOfSize:20]constrainedToSize:CGSizeMake(270, 4000)lineBreakMode:UILineBreakModeWordWrap];

            return detailSize.height;
        }

надеюсь, что это поможет, чтобы помочь вашему пониманию, вы, возможно, захотите взглянуть на 'sizeWithFont', чтобы понять, что он делает, чтобы вернуть размер.

0 голосов
/ 01 марта 2011

Вы должны использовать метод tableView:heightForRowAtIndexPath: в UITableViewDelegate, чтобы возвратить высоту строки. Обратите внимание, что этот метод должен быть очень быстрым, если у вас больше нескольких строк, так как он будет вызываться для каждой строки в таблице, а не только для видимых строк.

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