2013-12-16 3 views
0

У меня есть табличное представление, которое отображает фид статусов (на фото ниже) и im пытается выяснить, как правильно распределять каждую ячейку или короткие статусы, имеющие меньшую ячейку и большие ячейки, которые отображают все текст статуса для более длинных статусов. Ive натолкнулся на этот вопрос: http://www.cimgf.com/2009/09/23/uitableviewcell-dynamic-height/ячейка uitableview авторезистирует в ios7 для ячейки w. более чем одна метка [IMG]

но, им все еще немного запутался в том, как я собирался рассчитать в дополнительном пространстве для своих кнопок или по левому краю для большого пальца img.

В настоящее время он состоит из 2-х кнопок, ярлыка (для имени пользователя), большого пальца img и текстового поля (неуверенный, должен ли я использовать текстовое поле или метку для отображения статуса, либо это нормально, если я он работает)

Пожалуйста, простите меня заранее, если это вопрос, на который уже был дан ответ. Я прежде всего органы Android разработчика просто начать работу в IOS и нашел много смешанных ответы на эту тему так что им немного не уверен, если есть простое решение этой проблемы в IOS7

enter image description here

ответ

2

Есть несколько способов от этого, но я обнаружил, что наиболее надежным является использование временного и невидимого UITextView для получения необходимого размера.

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    //Ideally you should do lazy loading so that instead of creating a new textView each time, you just reuse the same one. 
    UITextView *temp = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 44)]; //This initial size doesn't matter 
    temp.font = __Your_desired_font__ 
    temp.text = @"Put your status here"; 

    CGFloat textViewWidth = __your_constraint_width__ 
    CGRect tempFrame = CGRectMake(0,0,textViewWidth,44); //The height of this frame doesn't matter. 
    CGSize tvsize = [temp sizeThatFits:CGSizeMake(tempFrame.size.width, tempFrame.size.height)]; //This calculates the necessary size so that all the text fits in the necessary width. 

    //Add the height of the other UI elements inside your cell 

    return tvsize.height + staticElementHeights 


} 

Это работает на прошивке 7, но я думаю, что если вы хотите, чтобы поддержать IOS 6, нужно, чтобы на самом деле добавить TextView как подвид для этого, чтобы работать. Просто установите temp.hidden = YES

Путь текст отображается в UILabel отличается от UITextView, поэтому для UILabel, вы должны использовать метод, описанный в этом ответе iOS auto adjust label height

+0

одна последняя вещь, как бы я правильно собираюсь получить ярлык для отображения всего текста? Я попытался установить его на 0 строк как в моем раскадровке, так и в моей пользовательской ячейке .... и ничего – ChuckKelly