如何修复不断变化的约束和动态 UITableviewCell 高度?
How to fix changing constraints and dynamic UITableviewCell height?
我正在尝试让 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];
});
}
有谁知道我怎样才能有一个流畅的工作效果?
谢谢!
原来我的图像视图的名称与 UITableViewCell 图像视图存在冲突。所以我将 self.imageView 替换为 self.pictureView,现在一切正常。
我希望有一天这会对某人有所帮助 ^^
我正在尝试让 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];
});
}
有谁知道我怎样才能有一个流畅的工作效果? 谢谢!
原来我的图像视图的名称与 UITableViewCell 图像视图存在冲突。所以我将 self.imageView 替换为 self.pictureView,现在一切正常。 我希望有一天这会对某人有所帮助 ^^