2017-01-03 3 views
-2

У меня есть одна ячейка, как Facebook стене сообщение.Как авторизовать ярлык в Tableviewcell в Objective c?

моя камера выглядит следующим образом.

enter image description here

Я хочу, чтобы изменить свою сотовую и текстовую метку на основе текста получает от WebService.

Я пробовал много решений из Интернета, но не повезло.

Code я попробовал

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

CGSize maximumLabelSize = CGSizeMake(9999, FLT_MAX); 

CGSize expectedLabelSize = [label sizeWithFont:[UIFont fontWithName:@"Verdana" size:10] constrainedToSize:maximumLabelSize lineBreakMode:NSLineBreakByWordWrapping]; 


[cellNewsimg.lblStatus sizeThatFits:expectedLabelSize]; 
cellNewsimg.lblStatus.frame.size.height=expectedLabelSize.height; 
objtableviewNewsFeedback.rowHeight = UITableViewAutomaticDimension; 
objtableviewNewsFeedback.estimatedRowHeight = 500; 


cellNewsimg.lblStatus.frame.size expectedLabelSize; 
return 350.0+200; 

} 

ячейки для строки в indexpath

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


NSArray *ary=[[NSBundle mainBundle] loadNibNamed:@"Newsfeed" owner:self options:nil]; 

cellNewsimg=(Newsfeed *)[ary firstObject]; 
cellNewsimg.lblStatus.text=label; 

cellNewsimg.lblStatus.lineBreakMode =UILineBreakModeWordWrap; 
cellNewsimg.lblStatus.numberOfLines = 0; 
[cellNewsimg.lblStatus sizeThatFits:expectedLabelSize]; 
return cellNewsimg; 
} 
+1

Просьба поделиться тем, что вы попробовали. – Koen

+0

Можете ли вы показать, что вы сделали в 'cellForRowAtIndexPath' и' heightForRowAtIndexPath'? –

+0

@MilanGupta Пожалуйста, уточните мой обновленный вопрос –

ответ

0

Попробуйте это:

- (CGFloat)tableView:(UITableView)tableView heightForRowAtIndexPath:(NSIndexPath)indexPath 
{ 
    return [_tbl.dataSource tableView:tableView cellForRowAtIndexPath:indexPath].contentView.frame.size.height + 8; 
} 


- (UITableViewCell)tableView:(UITableView)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
NSArray *ary=[[NSBundle mainBundle] loadNibNamed:@"Newsfeed" owner:self options:nil]; 
cellNewsimg=(Newsfeed *)[ary firstObject]; 

cellNewsimg.lblStatus.frame = CGRectMake(0,0,ScreenWidth,21); //set your x,y and Screenwidth is a float, set it dynamically as per your view 

cellNewsimg.lblStatus.text=label; 

cellNewsimg.lblStatus.lineBreakMode = NSLineBreakByWordWrapping; 
cellNewsimg.lblStatus.numberOfLines = 0; 
[cellNewsimg.lblStatus sizeToFit]; 
cell.contentView.frame = CGRectMake(0, 0, _tbl.frame.size.width, CGRectGetMaxY(cell.lblStatus.frame) + 8) ; 

return cellNewsimg; 
} 

Просто получить размер этикетки в cellForRowAtIndexPath:indexPath и установите все элементы управления в соответствии с что. Не рассчитывайте ничего в heightForRowAtIndexPath.

Надеюсь, это поможет.

+0

Я пробовал, но не работал –

+0

Вы установили авторезистировку для метки из раскадровки? Если да, то удалите его. Также в соответствии с вашим представлением вам нужно будет установить 'UIImage' y после установки фрейма метки и всех его представлений. И возьмите 'CGRectGetMaxY' последнего элемента управления в своей ячейке. –

+0

Вам необходимо использовать Autolayout, см. Здесь: http://stackoverflow.com/questions/18746929/using-auto-layout-in-uitableview-for-dynamic-cell-layouts-variable-row-heights – Koen

Смежные вопросы