2014-11-22 2 views
4

Я новичок в разработке iOS. Я создаю UITableview, который содержит CustumCell.My CustumCell содержит UITextView и некоторые элементы управления. Но я хочу установить My Cell Height как 300, если мой UITextViewtext содержит некоторый текст, и если мой текст TextView содержит нулевой текст, значит, нет текста, тогда я хочу Высота ячейки 170, как это возможно. Я пишу код для этого, но он не работает.Как настроить табличную высоту CustumCell?

Мой код вроде как

NSString *magazineDescription=[self.firstArray valueForKey:@"long_description"]; 
if([magazineDescription isKindOfClass:[NSString class]]) 
{ 
cellOne.magazineDescriptionTextView.text = magazineDescription; 
cellOne.frame=CGRectMake(0, 0, 300, 300); 
} 
else 
{ 
cellOne.magazineDescriptionTextView.text = @""; 
cellOne.magazineDescriptionTextView.hidden=TRUE; 
cellOne.frame=CGRectMake(0, 0, 300, 170); 
} 

Вот мой self.firstArray Содержать значение данных JSON и когда-то мой KeyValue @ «long_description» равно нулю, поэтому я хочу, чтобы скрыть TextView от ячейки и установить высоту ячейки от 300 до 170 и Width хотят остаться одинаковыми для обоих случаев.

я знаю, метод для этого типа, как

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

Но в этом методе, как установить высоту в этом методе для этого случая .please дают мне решение для этого.

ответ

3
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    NSString *cellText = @“Your text”; 
    UIFont *cellFont = [UIFont systemFontOfSize:YourFontSize]; 
    CGSize constraintSize = CGSizeMake(TextviewWidth, MAXFLOAT); 
    CGSize labelSize = [cellText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:NSLineBreakByWordWrapping]; 
    NSLog(@"labelSize : %f", labelSize.height); 
    return labelSize.height; 
} 
+0

Но когда TextView текст является недействительным, то ????? –

0
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    //Fetch your string from array as below or according to your code 
    NSString *magazineDescription=[self.firstArray valueForKey:@"long_description"]; 
    if(magazineDescription!=nil) 
    { 
     return 300.0f; 
    } 
    else 
    { 
     return 170.0f; 
    } 
} 
+0

не работает. –

+0

Можете ли вы разместить свой код здесь и объединить вас в табличное представление –

+0

NSString * magazineDescription = [self.firstArray valueForKey: @ "long_description"]; если ([журналDescription -KindOfClass: [NSString класс]]) { cellOne.magazineDescriptionTextView.text = журналDescription; cellOne.frame = CGRectMake (0, 0, 300, 300); } прочее { cellOne.magazineDescriptionTextView.text = @ ""; cellOne.magazineDescriptionTextView.hidden = TRUE; cellOne.frame = CGRectMake (0, 0, 300, 170); } [cellOne.magazineDescriptionTextView setFont: [UIFont fontWithName: @ "RobotoCondensed-Light" size: 10.0f]]; –

0

Во-первых, объявить CustomerCell свойству

@property (strong, nonatomic) CustomerCell *cell; 

в tableViewDelegate

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

    if ([@"" isEqualToString:_cell.textView.text] || _cell.textView.text == nil) { 
     return 170; 
    } else { 
     return 300; 
    } 
} 

надежда `ы помочь

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