Я ноб в Xcode и Objective-C, и мне нужна помощь, чтобы создать динамическую высоту ячейки таблицы представления, о сколько символов в метке. Так будет выглядеть следующим образом: если TextLabel символ более чем 10 он будет изменять размеры listHeight 50 еще, если TextLabel символ более чем 20 он будет изменять размеры listHeight 70 и так далее ...Динамическая пользовательская высота UITableViewCell, основанная на длине текста ярлыка
Этот как я код:
NSLong *text;
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellID = @"ChatTableViewCell";
ChatTableViewCell *cell = (ChatTableViewCell *)[tableView dequeueReusableCellWithIdentifier:cellID];
if (cell == nil){
NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"ChatTableViewCell" owner:self options:nil];
cell = [nib objectAtIndex:0];
}
Chat * chatObject;
chatObject = [chatArray objectAtIndex:indexPath.row];
cell.nameChat.text = chatObject.name;
cell.messageChat.text = chatObject.message;
cell.messageChat.lineBreakMode = UILineBreakModeTailTruncation;
cell.messageChat.numberOfLines = 0;
cell.dateChat.text = chatObject.time_entry;
//attached foto
NSString *setPhoto=chatObject.photo;
[cell.imageChat setImage:[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://localhost/summit/www/media/user/photo/%@",setPhoto]]]]];
cell.imageChat.layer.cornerRadius=cell.imageChat.frame.size.height /2;;
cell.imageChat.layer.masksToBounds = YES;
cell.imageChat.layer.borderWidth = 0;
if (cell.imageChat.image==nil) {
cell.imageChat.image=[UIImage imageNamed:@"profile.png"];
}
text=[cell.messageChat.text length];
return cell;
}
Я пытаюсь это, но не работает:
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
CGFloat height;
if(text>=10){
height=100;
}
else
height=70;
return height;
}
Пожалуйста, помогите мне, я умираю, чтобы сделать это @ _ @ Спасибо заранее
Вы обеспечиваете пример построения ячейки, но это не определяет его высоту. Вы реализовали метод tableView: heightForRowAtIndexPath: '? Что вы пробовали? Кроме того, вы действительно хотите, чтобы высота зависела от количества символов, или вы пытаетесь убедиться, что ячейка достаточно велика, чтобы соответствовать любому содержащемуся в ней тексту? – Jonah
У меня есть метод, но прямо сейчас он содержит только статическое значение return 70; – Edward
Я думаю, вам нужно лучше определить правила, которые, по вашему мнению, будут вычислять правильную высоту ячейки, даже если вы не уверены, как выразить их в коде. В противном случае любой ответ здесь - это всего лишь догадка о том, что вы пытаетесь сделать. Кажется, что ваши ячейки содержат много фрагментов текста, какие из них должны влиять на высоту ячейки? – Jonah