Я пытаюсь создать UITableViewCell, который может отображать или не отображать UIImageView вместе с UITextView. Если у меня есть только текстовое представление, нет проблем, ячейка соответственно изменит высоту. Но когда я пытаюсь обновить высоту, когда изображение меняет размер (я скрываю его, устанавливая его в значение hidden = YES и обновляя ограничение высоты на небольшое значение), текст должен быть обновлен, чтобы иметь корректный эффект.
Возможно, я не совсем уверен, поэтому вот проблема в действии:
и код:
-(void)textViewDidChange:(UITextView *)textView{
CGFloat startHeight = self.textView.frame.size.height;
CGFloat calcHeight = [self.textView sizeThatFits:self.textView.frame.size].height;
if (startHeight != calcHeight) {
[UIView setAnimationsEnabled:NO];
[self.tableView beginUpdates];
[self.tableView endUpdates];
[UIView setAnimationsEnabled:YES];
}
}
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
if([text isEqualToString:@"\n"])
[textView resignFirstResponder];
return YES;
}
- (IBAction)imgButtonPushed:(id)sender {
//self.imageView.hidden = !self.imageView.hidden;
dispatch_async(dispatch_get_main_queue(), ^(void){
[self.tableView beginUpdates];
if(self.imageView.hidden){
self.imageConstraintHeight.constant = 200;
self.imageView.hidden = NO;
}else{
self.imageView.hidden = YES;
self.imageConstraintHeight.constant = 4;
}
[self.contentView setNeedsLayout];
[self.contentView layoutIfNeeded];
[self.tableView endUpdates];
});
}
Кто-нибудь знает, как я мог бы получить плавный и рабочий эффект?
Спасибо!