我有一个带有textview的单元格,它有一个view more
按钮。按此按钮时,单元格会相应扩展。我打电话了,
[self.parent.tableView beginUpdates];
[self.parent.tableView endUpdates];
这些方法正在调用cellForRowAtIndexPath
。在cellForRowAtIndexPath
方法中,我设置了textview的初始高度(文本缩小时的高度)。使用beginUpdate调用此文本时,文本视图会自动折叠,因为文本视图正在设置初始高度。
我尝试删除beginUpdates
,但它只显示了部分文字。不是全文。
if (self.postTextView.text.length >= 100) {
CGSize initialHeight = [self calculateHeightForString:(post.fullText.length > 100)?[post.fullText substringToIndex:100]:post.fullText];
self.textViewHeightConstraint.constant = initialHeight.height + 40;
} else {
CGSize initialHeight = [self calculateHeightForString:post.fullText];
self.textViewHeightConstraint.constant = initialHeight.height + 40;
}
收缩文字
UITextView *textView = (UITextView*)((UITapGestureRecognizer *)sender).view;
OCPost *post = [self.parent._posts objectAtIndex:textView.tag];
NSMutableAttributedString *answerAttributed = [[NSMutableAttributedString alloc] initWithString:post.fullText attributes:@{NSFontAttributeName : [UIFont fontWithName:@"SFUIText-Light" size:18.0], NSForegroundColorAttributeName:[UIColor blackColor]}];
self.postTextView.attributedText = answerAttributed;
self.textViewHeightConstraint.constant = [self fullHeightOfString:self.postTextView.attributedText].height + 40;
[self.parent.tableView beginUpdates];
[self.parent.tableView endUpdates];
readMoreGesture.enabled = NO;
我该如何解决这个问题?
提前致谢!
答案 0 :(得分:1)
您应该将单元格的状态保存在单独的变量中。
我们称之为var isExpanded: Bool = false
。当您点按“显示更多”时,状态应设置为true
,并在cellForRowAtIndexPath
中使用该变量来确定其适当的高度。